アノテーションインターフェース 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()
の型安全な代替手段です。指定された各クラスのパッケージがスキャンされます。この属性によって参照される以外の目的を果たさない特別なノーオペレーションマーカークラスまたはインターフェースを各パッケージに作成することを検討してください。
- デフォルト:
- {}