アノテーションインターフェース Lookup


「ルックアップ」メソッドを示すアノテーション。コンテナーによってオーバーライドされ、getBean 呼び出しのために BeanFactory にリダイレクトして戻されます。これは本質的に XML lookup-method 属性のアノテーションベースのバージョンであり、同じ実行時の配置になります。

ターゲット Bean の解決は、戻り値の型(getBean(Class))または推奨される Bean 名(getBean(String))に基づいて行うことができます。どちらの場合も、メソッドの引数を getBean 呼び出しに渡して、ターゲットファクトリメソッド引数またはコンストラクター引数として適用します。

このようなルックアップメソッドには、コンテナーによって単純に置き換えられるデフォルト(スタブ)実装を含めることができます。あるいは、コンテナーを実行時に埋め込むために、抽象として宣言することもできます。どちらの場合も、コンテナーは CGLIB を介してメソッドを含むクラスのランタイムサブクラスを生成します。そのため、このようなルックアップメソッドは、コンテナーが通常のコンストラクターを通じてインスタンス化する Bean でのみ機能します。つまり、ルックアップメソッドは、ファクトリメソッドから返された Bean で置き換えられません。それらにサブクラスを動的に提供することはできません。

一般的な Spring 構成シナリオの推奨事項 : 特定のシナリオで具象クラスが必要になる場合は、ルックアップメソッドのスタブ実装を提供することを検討してください。また、ルックアップメソッドは、構成クラスの @Bean メソッドから返された Bean では機能しないことに注意してください。代わりに @Inject Provider<TargetBean> などを使用する必要があります。

導入:
4.1
作成者:
Juergen Hoeller
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    このアノテーション属性は、検索するターゲット Bean 名を提案する場合があります。
  • 要素の詳細

    • value

      StringSE value
      このアノテーション属性は、検索するターゲット Bean 名を提案する場合があります。指定しない場合、ターゲット Bean は、アノテーション付きメソッドの戻り型宣言に基づいて解決されます。
      デフォルト:
      ""