gpt4 book ai didi

java - JEE架构问题: Service can inject Service? 或者Service只能注入(inject)Dao?

转载 作者:行者123 更新时间:2023-12-02 10:01:19 25 4
gpt4 key购买 nike

这是使用 Dao 和 Service 和 Controller 时的架构问题:

假设:在DAO层,有DAO类,称为:Dao1,Dao2,...

在服务层中,有一些服务类,称为:Service1、Service2、...

在 Controller 层,有一些 Controller 类,称为:Controller1、Controller2、...

Service1需要注入(inject)Dao1,以及Service2

Controller1需要注入(inject)Dao2、Service1和Controller2

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

最好说:Service只能注入(inject)Dao,而Controlleur只能注入(inject)Service?

最佳答案

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

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

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

希望这有帮助!

关于java - JEE架构问题: Service can inject Service? 或者Service只能注入(inject)Dao?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55612996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com