実行時のアノテーション付きクラスの検索
Java では、クラスにアノテーションを付けると、メタデータをコードに追加する便利な方法が提供され、イントロスペクションとカスタマイズが可能になります。ライブラリ開発者にとって、ユーザー定義のアノテーションを検出して処理するには、実行時にアノテーション付きクラスのクラスパスをスキャンすることが不可欠になります。この質問では、そのようなシナリオの解決策を検討します。
ClassPathScanningCandidateComponentProvider を使用したクラスパス スキャン
Spring Framework は、クラスパス スキャンの包括的なソリューションを提供します。 org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider クラスを利用することで、アノテーションなどの特定の基準に一致する候補クラスのクラスパスをスキャンできます。
プロバイダーは、フィルターを構成してスキャン結果を絞り込むことによって動作します。この場合、目的の注釈クラスを使用して注釈タイプのフィルターを作成します。
scanner.addIncludeFilter(new AnnotationTypeFilter(MyAnnotation.class));
次に、スキャンを開始する基本パッケージを指定します。
for (BeanDefinition bd : scanner.findCandidateComponents("com.example.base.package"))
結果として得られる BeanDefinition オブジェクトは、MyAnnotation で注釈が付けられたすべてのクラスの完全修飾クラス名へのアクセスを提供し、ライブラリ中にそれらを検出して処理できるようにします。起動します。
以上が実行時に特定のアノテーションを持つ Java クラスを検索して処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。