gpt4 book ai didi

java - 基于Spring注解的AOP拦截父类中实现的方法

转载 作者:行者123 更新时间:2023-12-02 07:32:59 24 4
gpt4 key购买 nike

我们正在使用基于注释的 AOP 来拦截功能的方法。

基本接口(interface):

public interface BaseInterface { 
public void someMethod();
}

抽象基础实现:

public abstract class AbstractBaseImplementation implements BaseInterface {
public void someMethod() {
//some logic
}
}

子接口(interface):

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来拦截ActualImplementation.someMethod(在父类中实现)?

使用aop配置可以通过

来实现
<aop:advisor pointcut="execution(* com.package..*ActualImplemetation .someMethod(..))" advice-ref="someInterceptor" />

最佳答案

类似于:

@Pointcut("execution(* com.package.*ActualImplemetation.someMethod(..))"
// OR
// using BaseInterface reference directly, you can use all sub-interface/sub-class methods
//@Pointcut("execution(* com.package.BaseInterface.someMethod(..))"
logMethod() { //ignore method syntax
//.....
}

关于java - 基于Spring注解的AOP拦截父类中实现的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12670617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com