インターフェース BeanRegistrar
- 関数インターフェース:
- これは関数インターフェースであるため、ラムダ式またはメソッド参照の割り当てターゲットとして使用できます。
プログラムで Bean を登録するための契約。通常は、
@Configuration クラスの @Import アノテーションを使用してインポートされます。
@Configuration
@Import(MyBeanRegistrar.class)
class MyConfiguration {
}GenericApplicationContext.register(BeanRegistrar...) を介してアプリケーションコンテキストに適用することもできます。Bean レジストラ実装では、BeanRegistry および Environment API を使用して、簡潔かつ柔軟な方法でプログラムによって Bean を登録します。
class MyBeanRegistrar implements BeanRegistrar {
@Override
public void register(BeanRegistry registry, Environment env) {
registry.registerBean("foo", Foo.class);
registry.registerBean("bar", Bar.class, spec -> spec
.prototype()
.lazyInit()
.description("Custom description")
.supplier(context -> new Bar(context.bean(Foo.class))));
if (env.matchesProfiles("baz")) {
registry.registerBean(Baz.class, spec -> spec
.supplier(context -> new Baz("Hello World!")));
}
}
}ImportAware を実装する BeanRegistrar は、インポートシナリオで使用するときにオプションでインポートメタデータをイントロスペクトできます。それ以外の場合は、setImportMetadata メソッドは呼び出されません。
Kotlin では、BeanRegistrar を実装する代わりに BeanRegistrarDsl を使用することをお勧めします。
- 導入:
- 7.0
- 作成者:
- Sebastien Deleuze
方法の概要
修飾子と型メソッド説明voidregister(BeanRegistry registry, Environment env) 指定されたBeanRegistryにプログラム的に Bean を登録します。
メソッドの詳細
register
指定されたBeanRegistryにプログラム的に Bean を登録します。- パラメーター:
registry- Bean レジストリを操作するenv- アクティブなプロファイルまたはいくつかのプロパティを取得するために使用できる環境