Java DDD与应用层

Java DDD与应用层,java,jakarta-ee,domain-driven-design,ejb,Java,Jakarta Ee,Domain Driven Design,Ejb,是我在DDD中添加@Stateful、@Stateless、@WebService等的应用层(应用服务)吗?从下面的链接来看,这似乎是正确的 第二个问题:我已经创建了一个repository类,所有涉及repository的方法调用都应该在应用程序服务中包装吗?或者我可以直接在JSF中使用存储库类,比如说支持bean吗?什么时候,我应该在应用层中放置什么。我不明白ejb在这个艺术领域的归属 应用程序层:该层协调应用程序活动。它不包含任何业务逻辑。它不保存业务对象的状态,但可以保存应用程序任务进度

是我在DDD中添加@Stateful、@Stateless、@WebService等的应用层(应用服务)吗?从下面的链接来看,这似乎是正确的

第二个问题:我已经创建了一个repository类,所有涉及repository的方法调用都应该在应用程序服务中包装吗?或者我可以直接在JSF中使用存储库类,比如说支持bean吗?什么时候,我应该在应用层中放置什么。我不明白ejb在这个艺术领域的归属

应用程序层:该层协调应用程序活动。它不包含任何业务逻辑。它不保存业务对象的状态,但可以保存应用程序任务进度的状态


Java EE提倡贫血模型,与DDD相反。如果您想要DDD,您的实体还必须执行业务逻辑,这与服务层和实体的分离相反。

在DDD体系结构中,应用层和所有其他层仅与系统的较低层通信。由于这个原因,应用程序服务wrapp存储库是可用的,但是如果您在Yection中使用dependency,则可以沿应用程序服务层重用所有存储库

AppService的真正工作是协调与其他服务或存储库或包容性域服务的操作

在您的实体中,业务逻辑必须仅与您自己的实体相关。始终尊重单一责任原则()


我希望能有所帮助

那么是不是域/模型拥有@Stateful/@Webservice等等?是的,但你不能轻易做到这一点。JavaEE使使用正确的DDDSo变得困难,您有什么建议?你是如何构建你的应用程序的?你是否在传统的贫血风格中使用了DDD以外的其他艺术技术。托管bean调用无状态bean(服务)调用存储库组件(DAO),DAO保存只有setter和getter的实体。这是通常的情况,尽管一些纯粹主义者反对