実行時にカスタムアノテーションを使用することに関して質問があります。java注釈 - ランタイム時の自動使用
私が達成しようとしていることをあなたに記入してください。カスタムアノテーションを作成し、それをサービスクラスのメソッドに適用しました。
public class MyService
{
@MyCustomAnnotation
public String connect()
{
return "hello";
}
}
今、私は行くとメソッドを処理するためにリフレクションを使用して、私のカスタム注釈が適用されていた方法にロジックのいくつかの種類を適用することができます。
for(Method method : obj.getClass().getDeclaredMethods())
{
// Look for @MyCustomAnnotation annotated method
if(method.isAnnotationPresent(MyCustomAnnotation.class))
{
// Do something...
}
}
しかし、私は実行時に自動的に反射処理ステップを適用する方法を理解できないため、パズルの一部が欠落しているようです。
たとえば、アプリケーションで次のようなメインメソッドを使用している場合、リフレクト処理ステップを自動的に適用するにはどうすればよいですか?
public static void main(String[] args)
{
MyService service = new MyService();
service.connect();
}
バネ等の他のフレームワークは、それを達成することができますが、私は、彼らがこれを行う方法の例を見つけることができないとして明らかにこれは可能です。 @Beri
へ
この注釈スキャンは、サービスの作成時または使用準備が整った時点で行う必要があります。ある時点ですべてのクラスをスキャンし、それらを適用することができます:http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection – Beri
@Beri - 注釈スキャン? –
またはアスペクト:http://www.yegor256.com/2014/06/01/aop-aspectj-java-method-logging.html単一のアプリケーションポイントでは、単にaspectを呼び出して注釈付きのすべてのメソッドを探します。 – Beri