特定のアノテーションでマークされたクラスに属するすべてのパブリックメソッドをターゲットにするアスペクトを作成するにはどうすればよいですか? method1()とmethod2()はaspectで処理し、method3()はaspectで処理しないでください。SpringとAspectJを使用したクラスでのアスペクトベースのアノテーションのターゲティング
@SomeAnnotation(SomeParam.class)
public class FooServiceImpl extends FooService {
public void method1() { ... }
public void method2() { ... }
}
public class BarServiceImpl extends BarService {
public void method3() { ... }
}
注釈をメソッドレベルに配置すると、このアスペクトはメソッド呼び出しと一致します。
@Around("@annotation(someAnnotation)")
public Object invokeService(ProceedingJoinPoint pjp, SomeAnnotation someAnnotation)
throws Throwable {
// need to have access to someAnnotation's parameters.
someAnnotation.value();
}
私は春とプロキシベースの側面を使用しています。