アノテーションインターフェース Lazy


Bean を遅延初期化するかどうかを示します。

@Component でアノテーションが付けられたクラスに直接または間接的に、または @Bean でアノテーションが付けられたメソッドで使用できます。

このアノテーションが @Component または @Bean 定義に存在しない場合、先行初期化が行われます。存在し、true に設定されている場合、@Bean または @Component は、別の Bean によって参照されるか、それを囲む BeanFactory から明示的に取得されるまで初期化されません。存在し、false に設定されている場合、Bean は、シングルトンの先行初期化を実行する Bean ファクトリによって起動時にインスタンス化されます。

Lazy が @Configuration クラスに存在する場合、これは、その @Configuration 内のすべての @Bean メソッドを遅延初期化する必要があることを示します。@Lazy が存在し、@Lazy アノテーション付き @Configuration クラス内の @Bean メソッドに false が存在する場合、これは「デフォルトの遅延」動作をオーバーライドし、Bean を積極的に初期化する必要があることを示します。

コンポーネントの初期化のロールに加えて、このアノテーションは Autowired または InjectEE でマークされたインジェクションポイントに配置することもできます。そのコンテキストでは、ObjectFactory を使用する代わりに、影響を受けるすべての依存関係に対して遅延解決プロキシを作成します。または ProviderEE。このような遅延解決プロキシは常に挿入されることに注意してください。ターゲットの依存関係が存在しない場合は、呼び出しの例外を介してのみ見つけることができます。結果として、そのようなインジェクションポイントは、オプションの依存関係に対して直感的でない動作をもたらします。より洗練された怠惰な参照を可能にするプログラム上の同等物については、ObjectProvider を検討してください。

導入:
3.0
作成者:
Chris Beams, Juergen Hoeller
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    boolean
    遅延初期化を行うかどうか。
  • 要素の詳細

    • value

      boolean value
      遅延初期化を行うかどうか。
      デフォルト:
      true