2016-08-07 6 views
2

Spring 4.3の新機能の1つはimplicit constructor injectionで、コンストラクタの上にはもう@Autowiredを指定する必要はありません。Spring 4.3 Lazyコンポーネントの暗黙のコンストラクタ注入動作

私の質問は、暗黙のコンストラクタインジェクションはレイジービーンでどのように振る舞うのですか?

@Component 
@Lazy 
public class SomeClass {} 

@Component 
public class ClientClass { 
    // does SomeClass still lazily initialized??? 
    public ClientClass(SomeClass someClass) { ... } 
} 

答えて

0

あなたは春が怠惰なプロキシを作成し、SomeClassが要求される場合に、それを注入することを意味豆に注釈を適用しました。 Bean要件が暗黙の(シングルトン)コンストラクタから来ているという事実は重要ではありません。

+0

プロキシの動作を取得するには、 'proxyMode'を' TARGET_CLASS'(適切な変更を加えた 'INTERFACES')に設定した' @Scope'が必要です。 –

+0

@SotiriosDelimanolisそれは依存性がどのように表現されるかに基づいて怠惰が適用されるかどうかの問題とは正反対です。 – chrylis

+0

おそらく、このコンテキストでは遅延プロキシが存在しないため、怠惰なプロキシを呼び出すことは間違いです。 'SomeClass' Beanは、コンストラクタに注入するために完全に初期化されます。 –

関連する問題