2017-02-15 142 views
0

我正在运行到依赖注入周期问题。我正在请求重新设计建议。提前谢谢。弹簧依赖注入周期

错误描述:一些豆的依赖关系在应用程序上下文形成循环:

这里有两个类

第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

请添加您的错误日志 – mvlaicevich

+2

你问它回答了你的问题 - 有依赖循环,考虑其他的架构 –

+0

对不起,我想我没有问一个问题。我要求重新设计建议。 – Amitab

回答

0

这是一个依赖性循环,因为你已经回答了你的问题。

这里有什么问题?

  1. 春天试图从MyService创建一个bean。因此它必须调用构造函数MyService(Product1 product1, Product2 product2)

  2. spring需要依赖关系Product1并在应用程序上下文中进行搜索。它找到类Product1,它用@Service注释进行了注释,并尝试从中创建一个bean(调用默认构造函数)。然后它会尝试注入属性。因此它需要MyService ..等瞧。循环依赖。转到1.重新开始。