我正在尝试通过DDD开发一个Web应用程序。但在最佳实践中,我不确定是否应该直接将丰富的域对象放入 Web session 中?例如:如link建议,将EntityManager放入域对象中,我认为如果我想将域对象放入Web session 中不太好。
那么,您能分享一些将 DDD 应用于 Web 应用程序的真实经验吗?特别是如何通过Web session 处理丰富的域对象?有什么好的演示应用程序(Java 的)我可以引用吗?
谢谢, 莱昂
<小时/>亲爱的 MikeSW、MaxS,感谢您的宝贵回答。
因此,在实践中,如果我使用 DDD,我仍然必须创建一个浅(贫血)对象模型或 DTO,以在表示层和服务(业务)层之间共享数据。
我的理解正确吗?
如果有任何好的引用应用程序或谈论类似架构的文章,请告诉我。 我试图找到一些,但希望看到更多。
谢谢,莱昂
最佳答案
出于技术(资源浪费)和语义原因,不应将域对象(或任何复杂对象)放入 session 中。 Session 并不是一个 Cache,而是临时用户数据的持有者。可能将对象 ID 存储在 session 中,然后使用存储库检索实际对象。如果需要,存储库可以缓存内容。
关于java - 对于Web应用程序的DDD,我应该将丰富的域对象放入表示层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259094/