アノテーションインターフェース ReflectiveScan
Reflective の使用について任意の型をスキャンします。通常は @Configuration クラスで使用されますが、任意の Bean に追加できます。スキャンは AOT 処理中 (通常はビルド時) に行われます。 以下の例では、com.example.app とそのサブパッケージがスキャンされます。
@Configuration
@ReflectiveScan("com.example.app")
class MyConfiguration {
// ...
}basePackageClasses() または basePackages() (またはその別名 value() ) を指定して、スキャンする特定のパッケージを定義できます。特定のパッケージが定義されていない場合、スキャンはこのアノテーションを宣言するクラスのパッケージから再帰的に実行されます。
型は、候補となるためにクラスレベルでアノテーションを付ける必要はなく、ターゲットパッケージ内のすべてのクラスをロードして「ディープスキャン」を実行し、型、コンストラクター、メソッド、フィールドで Reflective を検索します。囲まれたクラスも候補になります。ロードに失敗したクラスは無視されます。
- 導入:
- 6.2
- 作成者:
- Stephane Nicoll
- 関連事項:
オプション要素の概要
オプション要素修飾子と型オプションの要素説明ClassSE<?>[]リフレクションの使用をスキャンするパッケージを指定するための、basePackages()の型安全な代替手段です。StringSE[]リフレクション使用状況をスキャンする基本パッケージ。StringSE[]basePackages()のエイリアス。
要素の詳細
value
basePackages()のエイリアス。他の属性が必要ない場合は、より簡潔なアノテーション宣言を許可します。— たとえば、
@ReflectiveScan(basePackages = "org.my.pkg")ではなく@ReflectiveScan("org.my.pkg")です。- デフォルト:
- {}
basePackages
リフレクション使用状況をスキャンする基本パッケージ。value()は、この属性のエイリアスです(相互に排他的です)。文字列ベースのパッケージ名に代わる型安全な代替手段として
basePackageClasses()を使用します。- デフォルト:
- {}
basePackageClasses
ClassSE<?>[] basePackageClassesリフレクションの使用をスキャンするパッケージを指定するための、basePackages()の型安全な代替手段です。指定された各クラスのパッケージがスキャンされます。この属性によって参照される以外の目的を果たさない特別なノーオペレーションマーカークラスまたはインターフェースを各パッケージに作成することを検討してください。
- デフォルト:
- {}