機能をインターセプトするメソッドには、アノテーション ベースの AOP を使用しています。
基本インターフェース:
public interface BaseInterface {
public void someMethod();
}
抽象ベースの実装:
public abstract class AbstractBaseImplementation implements BaseInterface {
public void someMethod() {
//some logic
}
}
子インターフェース:
public interface ChildInterface extends BaseInterface {
public void anotherMethod();
}
実装クラス
public class ActualImplemetation extends AbstractBaseImplementation implements ChildInterface {
public void anotherMethod() {
// Some logic
}
}
から拡張された多くのクラスがありますAbstractBaseImplementation
。ポイント カットを識別するために、カスタム注釈が作成されます。
アスペクトは
@Aspect
public class SomeAspect {
@Before("@annotation(customAnnotation)")
public void someMethod(JoinPoint joinPoint) {
//Intercept logic
}
}
Annotation ベースの AOP を使用して (親クラスに実装されている)インターセプトするにはどうすればよいActualImplemetation.someMethod
ですか?
aop 構成を使用すると、これを実現できます。
<aop:advisor pointcut="execution(* com.package..*ActualImplemetation .someMethod(..))" advice-ref="someInterceptor" />