【发布时间】:2019-11-04 10:19:14
【问题描述】:
我们正在做一些重构,我们在这里碰壁了。 有两个服务类 AService 和 BService 做不同的工作有一个循环依赖。 早些时候它们在不同的库中,因此不存在循环依赖。但是现在在重构之后,我们将它们移到了一个单独的库中到一个单独的包中。 AService 的工作是将一些数据持久化到 NoSQL 数据库中以用于单独的用例。 BService 作业与 AService 作业完全不同。 AService 需要 BService 来获取一些数据。 BService 需要 AService 向 NoSQL Database 写入一些数据并回读。
如何解决循环依赖问题,使它们相互依赖。有针对此类问题的设计模式吗?
class AService {
@Autowired
private BService bService;
}
class BService {
@Autowired
private AService aService;
}
【问题讨论】:
-
也许您可以将需要 BService 的 AService 代码移动到 BService 并将 AService 作为写入数据存储的服务。
-
可能你的服务太大了,做的太多了?考虑拥有更多但更小、更简单的服务。
标签: java design-patterns circular-dependency