springboot中多服务bean的java设计模式

qlfbtfca  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(347)

我正在从事一个spring启动服务项目,在这个项目中,我们有多个spring服务bean,它们彼此自动连接在一起。
例如:

@Service
public class Service1

@Autowire
Service2, Service3
.
.
.
@Service
public class Service5
@Autowire
Service 4, Service 1

@Repository
public interface Service1Repository extends JpaRepository<Entity1, UUID>
.
.
.
@Repository
public interface Service5Repository extends JpaRepository<Entity5, UUID>

大多数服务bean都自动连接到另一个服务bean中,同时自动将其对应的存储库bean与其他一些bean连接起来(modelmapper,一些应用程序上下文bean)有时这会导致循环依赖性问题,有时它会在代码质量检查中失败,因为通过构造函数注入自动连接的bean超过9个。
我的问题是,有没有最佳实践或设计模式来构造这些应用程序springbean?

dzhpxtsq

dzhpxtsq1#

我的建议如下:
如果您主要关心的不是可测试性(即强制类级不变量),请不要通过构造函数注入自动连线,请尝试使用字段注入。这有助于代码质量检查。
尝试主要围绕模型对服务进行分组。例如,为模型person提供一个personrepository和一个personservice,它只处理person类型的对象。另外,只能从相应的服务方法调用存储库方法。
对于复杂的业务案例,有专门用于解决业务问题的服务类。例如,如果您正在实现一个员工排班应用程序,那么有一个用于生成排班的服务,另一个用于通知员工当前的日程安排,另一个用于将排班导出到google表单。
你的问题没有详细说明这些服务的目的是什么。如果您评估了策略、工厂、构建器或复合设计模式是否对您的案例有帮助,这将是有益的。

相关问题