@TargetSE(valueSE={TYPESE,METHODSE,CONSTRUCTORSE,PARAMETERSE,FIELDSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface Lazy
@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。
Primary, Bean, Configuration, Component| 修飾子と型 | オプションの要素と説明 |
|---|---|
boolean | value 遅延初期化を行うかどうか。 |