クラス MergedAnnotations.Search
java.lang.ObjectSE
org.springframework.core.annotation.MergedAnnotations.Search
- 含まれているインターフェース:
- MergedAnnotations
MergedAnnotations
モデルで使用される検索アルゴリズムを構成し、検索を実行するための Fluent API。- 構成は、使用する
MergedAnnotations.SearchStrategy
を指定してMergedAnnotations.search(SearchStrategy)
を呼び出すことから始まります。 - オプションの構成は、
with*()
メソッドの 1 つを介して提供できます。 - 実際の検索は、検索を開始するソース要素を指定して
from(AnnotatedElement)
を呼び出すことによって実行されます。
例: 以下は、繰り返し可能なアノテーションを無視しながら、そのクラスの型階層全体で MyClass
の検索を実行します。
MergedAnnotations mergedAnnotations = MergedAnnotations.search(SearchStrategy.TYPE_HIERARCHY) .withRepeatableContainers(RepeatableContainers.none()) .from(MyClass.class);
検索構成を再利用して複数の要素に対して同じ型の検索を実行する場合は、次の例に示すように Search
インスタンスを保存できます。
Search search = MergedAnnotations.search(SearchStrategy.TYPE_HIERARCHY) .withRepeatableContainers(RepeatableContainers.none()); MergedAnnotations mergedAnnotations = search.from(MyClass.class); // do something with the MergedAnnotations for MyClass mergedAnnotations = search.from(AnotherClass.class); // do something with the MergedAnnotations for AnotherClass
- 導入:
- 6.0
メソッドのサマリー
修飾子と型メソッド説明from
(AnnotatedElementSE element) このSearch
インスタンスの構成を使用して、提供されたAnnotatedElement
SE (Class
SE またはMethod
SE など) で始まるマージされたアノテーションの検索を実行します。withAnnotationFilter
(AnnotationFilter annotationFilter) 使用するAnnotationFilter
を構成します。withEnclosingClasses
(PredicateSE<ClassSE<?>> searchEnclosingClass) 検索アルゴリズムが囲んでいるクラスを検索するかどうかを構成します。withRepeatableContainers
(RepeatableContainers repeatableContainers) 使用するRepeatableContainers
を構成します。
メソッドの詳細
withEnclosingClasses
検索アルゴリズムが囲んでいるクラスを検索するかどうかを構成します。この機能はデフォルトで無効になっており、
MergedAnnotations.SearchStrategy.TYPE_HIERARCHY
を使用している場合にのみサポートされます。指定された
Predicate
SE がtrue
に評価される場合、囲んでいるクラスが再帰的に検索されます。通常、述語は、内部クラスとstatic
ネストされたクラスを区別するために使用されます。- 囲んでいるクラスの検索を内部クラスに限定するには、述語として
ClassUtils::isInnerClass
を指定します。 - 囲んでいるクラスの検索を静的なネストされたクラスに制限するには、述語として
ClassUtils::isStaticClass
を指定します。 - 囲んでいるクラスを常に検索するようにアルゴリズムを強制するには、述語として
clazz -> true
を指定します。 - その他のユースケースでは、カスタム述語を提供します。
警告 : 指定された述語が常に
true
と評価される場合、アルゴリズムは、ソース型が内部クラス、static
ネストクラス、またはネストインターフェースのいずれであるかに関係なく、任意のソース型のエンクロージングクラスのアノテーションを再帰的に検索します。予想よりも多くのアノテーションが見つかる場合があります。- パラメーター:
searchEnclosingClass
- 述語に提供されたクラスの囲みクラスで検索を実行する必要がある場合、true
に評価される述語- 戻り値:
- 連鎖メソッド呼び出し用のこの
Search
インスタンス - 関連事項:
- 囲んでいるクラスの検索を内部クラスに限定するには、述語として
withRepeatableContainers
使用するRepeatableContainers
を構成します。デフォルトは
RepeatableContainers.standardRepeatables()
です。- パラメーター:
repeatableContainers
- アノテーションまたはメタアノテーションで使用できる反復可能なコンテナー- 戻り値:
- 連鎖メソッド呼び出し用のこの
Search
インスタンス - 関連事項:
withAnnotationFilter
使用するAnnotationFilter
を構成します。デフォルトは
AnnotationFilter.PLAIN
です。- パラメーター:
annotationFilter
- 考慮されるアノテーションを制限するために使用されるアノテーションフィルター- 戻り値:
- 連鎖メソッド呼び出し用のこの
Search
インスタンス - 関連事項:
from
このSearch
インスタンスの構成を使用して、提供されたAnnotatedElement
SE (Class
SE またはMethod
SE など) で始まるマージされたアノテーションの検索を実行します。- パラメーター:
element
- ソース要素- 戻り値:
- 指定された要素からのすべてのアノテーションとメタアノテーションを含む新しい
MergedAnnotations
インスタンス、およびMergedAnnotations.SearchStrategy
に応じて、関連する継承された要素 - 関連事項: