JEE架构问题:服务可以注入服务吗?或者服务只能注入Dao?

问题描述 投票:0回答:1

使用Dao和服务和控制器时,这是一个架构问题:

假设:在DAO层中,有DAO类叫做:Dao1,Dao2,......

在服务层中,有一些服务类叫做:Service1,Service2,......

在控制器层中,有一些控制器类:控制器1,控制器2,......

Service1需要注入Dao1和Service2

控制器1需要注入Dao 2,服务和控制器2

此架构是否遵循JEE原则?有什么问题吗?

最好是说:服务只能注入Dao,Controlleur只能注入服务吗?

java spring-boot java-ee architecture ejb
1个回答
1
投票

根据我的理解,JEE没有提及/推荐设计模式。 JEE定义了不同领域的API集,例如事务,jdbc,jax-rs等,这些API的实现由不同的供应商提供。因此,JEE标准有助于开发企业应用程序,但它们并未规定任何设计原则。所以我想你的问题是这个架构是否遵循良好的设计模式,是否存在任何问题。

理想情况下,根据您的第二个问题,控制器不能注入dao类。控制器必须只调用服务,服务应该注入dao类并调用它们的方法。这种设计提供了控制器,服务和dao层之间的松散耦合。这样,如果dao类方法的签名发生更改,则控制器层不会受到影响,只需要更改服务层。

一般来说,大多数设计试图尽可能地实现松耦合和高内聚。

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.