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


@RetentionSE(RUNTIMESE) @TargetSE(TYPESE) @DocumentedSE public @interface ReflectiveScan
Reflective の使用について任意の型をスキャンします。通常は @Configuration クラスで使用されますが、任意の Bean に追加できます。スキャンは AOT 処理中 (通常はビルド時) に行われます。

以下の例では、com.example.app とそのサブパッケージがスキャンされます。


 @Configuration
 @ReflectiveScan("com.example.app")
 class MyConfiguration {
     // ...
 }

basePackageClasses() または basePackages() (またはその別名 value() ) を指定して、スキャンする特定のパッケージを定義できます。特定のパッケージが定義されていない場合、スキャンはこのアノテーションを宣言するクラスのパッケージから再帰的に実行されます。

型は、候補となるためにクラスレベルでアノテーションを付ける必要はなく、ターゲットパッケージ内のすべてのクラスをロードして「ディープスキャン」を実行し、型、コンストラクター、メソッド、フィールドで Reflective を検索します。囲まれたクラスも候補になります。ロードに失敗したクラスは無視されます。

導入:
6.2
作成者:
Stephane Nicoll
関連事項:
  • 要素の詳細

    • value

      @AliasFor("basePackages") StringSE[] value
      basePackages() のエイリアス。

      他の属性が必要ない場合は、より簡潔なアノテーション宣言を許可します。— たとえば、@ReflectiveScan(basePackages = "org.my.pkg") ではなく @ReflectiveScan("org.my.pkg") です。

      デフォルト:
      {}
    • basePackages

      @AliasFor("value") StringSE[] basePackages
      リフレクション使用状況をスキャンする基本パッケージ。

      value() は、この属性のエイリアスです(相互に排他的です)。

      文字列ベースのパッケージ名に代わる型安全な代替手段として basePackageClasses() を使用します。

      デフォルト:
      {}
    • basePackageClasses

      ClassSE<?>[] basePackageClasses
      リフレクションの使用をスキャンするパッケージを指定するための、basePackages() の型安全な代替手段です。指定された各クラスのパッケージがスキャンされます。

      この属性によって参照される以外の目的を果たさない特別なノーオペレーションマーカークラスまたはインターフェースを各パッケージに作成することを検討してください。

      デフォルト:
      {}