アノテーションインターフェース 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