2017-02-15 137 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.重新開始。