インターフェース BeanRegistrar

関数インターフェース:
これは関数インターフェースであるため、ラムダ式またはメソッド参照の割り当てターゲットとして使用できます。

@FunctionalInterfaceSE public interface 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
  • 方法の概要

    修飾子と型
    メソッド
    説明
    void
    指定された BeanRegistry にプログラム的に Bean を登録します。
  • メソッドの詳細

    • register

      void register(BeanRegistry registry, Environment env)
      指定された BeanRegistry にプログラム的に Bean を登録します。
      パラメーター:
      registry - Bean レジストリを操作する
      env - アクティブなプロファイルまたはいくつかのプロパティを取得するために使用できる環境