2017-02-15 18 views
0

私は依存性注入サイクルの問題に遭遇しています。私は再設計提案を要求しています。アドバンスありがとう。春の依存性注入サイクル

エラー説明:アプリケーションコンテキスト内のBeanのいくつかの依存関係がサイクルを形成:

@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つのクラス

クラス1ですクラス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を見つけ、そこから(デフォルトのコンストラクタを呼び出す)Beanを作成しようとします。次に、プロパティを注入しようとします。そのためにはMyServiceが必要です。サイクル依存性。 1.続けてやり直してください。