Jakarta ee 层在JavaEE中相互对话

Jakarta ee 层在JavaEE中相互对话,jakarta-ee,controller,entity,dao,Jakarta Ee,Controller,Entity,Dao,有一个JavaEE应用程序,它是自下而上分层的: 实体->数据访问对象(DAO)->控制器->外观 在这种体系结构中,控制器应该如何相互通信?它们可以调用彼此的方法,还是必须通过DAO层来实现?假设控制器代表您案例中的业务层 服务层中的EJB通常有自己的层次结构。在为客户机和UI提供更通用的API功能的同时,EJB可以为彼此提供细粒度的功能。因此,是的,同一层的对象可以相互对话,并且通常被设计成这样 其基本原理是从内部功能中抽象出外部API,并减少重复 编辑:在引入新的依赖项时,请不要停止犹豫。

有一个JavaEE应用程序,它是自下而上分层的:

实体->数据访问对象(DAO)->控制器->外观


在这种体系结构中,
控制器
应该如何相互通信?它们可以调用彼此的方法,还是必须通过DAO层来实现?

假设控制器代表您案例中的业务层

服务层中的EJB通常有自己的层次结构。在为客户机和UI提供更通用的API功能的同时,EJB可以为彼此提供细粒度的功能。因此,是的,同一层的对象可以相互对话,并且通常被设计成这样

其基本原理是从内部功能中抽象出外部API,并减少重复


编辑:在引入新的依赖项时,请不要停止犹豫。在耦合性、可测试性和体系结构一致性方面通常存在缺点。你不应该在同一层中使用一个层或者甚至是一个对象“从下面”——意思是从一个抽象程度较低的对象到一个抽象程度较高的对象。感觉不确定往往是一种暗示,要看两遍

控制器是您的业务层还是UI控制器?如果没有,服务/业务层在哪里?@kostja,控制器只保存业务逻辑。UI实际上在JSF中,它可以通过Facade访问数据。我很犹豫是否要互相注入控制器。不客气:)在结果不清楚时犹豫不决是正确的做法。请看编辑。