我遇到依赖注入循环问题。我要求重新设计建议。提前谢谢。
错误描述:应用程序上下文中某些bean的依赖关系形成一个循环:
以下是两个班级
第1类:
@Service
public class MyService {
private final Product1 finalProduct1;
private final Product2 finalProduct2;
@Autowired
public MyService (Product1 product1, Product2 product2) {
this.finalProduct1= product1;
this.finalProduct2= product2;
}
public List<String> getMyValues(String someParameter) {
...
return myValues;
}
...
}
第2类:
@Service
public class Product1 {
@Autowired
private MyService myService;
public List<someType> someMethod(String someParameter){
List<String> myValues = myService.getMyValues(someParameter);
...
}
...
}
答案 0 :(得分:0)
这是一个依赖循环,因为你已经在你的问题中回答了。
这里有什么问题?
Spring尝试从MyService
创建一个bean。因此,它必须调用构造函数MyService(Product1 product1, Product2 product2)
。
spring需要依赖项Product1
并在应用程序上下文中进行搜索。它找到使用Product1
注释注释的类@Service
,并尝试从中创建一个bean(调用默认构造函数)。然后它尝试注入属性。因此,它需要MyService
.. et voila。循环依赖。转到1.并重新开始。
答案 1 :(得分:0)
看起来像您用@Service注释注释似乎是POJO或业务对象时,最肯定不是服务。