java - 对于Web应用程序的DDD,我应该将丰富的域对象放入表示层吗?

标签 java session domain-driven-design session-variables

我正在尝试通过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/

相关文章:

session - EntityManager.getReference 是否总是在 session 中返回相同的实例?

domain-driven-design - DDD 中聚合的不同持久性存储库

C# MongoDB : How to correctly map a domain object?

design-patterns - DDD 选择聚合根

java - 我可以在 Azure Application Insights 中获得 Java Web 应用程序的探查器跟踪吗?

java - OnClickListener 单击按钮后直接更改页面

java - 多维数组中 array.length 和 array[0].length 之间的区别?

java - 嵌套循环模式

javascript - 链接回以前访问过的页面时设置默认值吗?

node.js - 使用 express-session 和 connect-session-sequelize 时 this.sessionModel.find 不是函数