@Target(value={TYPE,METHOD,CONSTRUCTOR,PARAMETER,FIELD})
@Retention(value=RUNTIME)
@Documented
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
または Inject
EE でマークされたインジェクションポイントに配置することもできます。そのコンテキストでは、ObjectFactory
を使用する代わりに、影響を受けるすべての依存関係の遅延解決プロキシが作成されます。または Provider
EE。
Primary
, Bean
, Configuration
, Component
修飾子と型 | オプションの要素と説明 |
---|---|
boolean | value 遅延初期化を行うかどうか。 |