Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AOP在接口方法实现中不起作用_Java_Spring_Spring Boot_Aop_Spring Aop - Fatal编程技术网

Java AOP在接口方法实现中不起作用

Java AOP在接口方法实现中不起作用,java,spring,spring-boot,aop,spring-aop,Java,Spring,Spring Boot,Aop,Spring Aop,我有一个默认方法调用同一接口的另一个方法 public interface Test { default Boolean isValidObject(String A) { ComplexObject B= new ComplexObject(); SomeObject SomeObject= validate(A, B); return SomeObject.isValid(); } SomeObject validate(St

我有一个默认方法调用同一接口的另一个方法

public interface Test {

    default Boolean isValidObject(String A) {
      ComplexObject B= new  ComplexObject();
      SomeObject SomeObject= validate(A, B);
      return SomeObject.isValid();
    }

    SomeObject validate(String A, ComplexObject b);
}
如果我提到的是
isValidObject
,那么它工作正常。但是,如果切入点指的是
validate
,则该切入点现在起作用

不起作用的切入点

@After("execution(fullqualifiedSomeObject com.a.b.c.Test+.validate(..))")
此外,左边还有一个标记,上面有消息。“此行的3个弹簧AOP标记”


请分享你的想法

Test+.validate(..)不应该是Test.validate(..)吗?为什么不创建注释来标记要应用aop的方法?按照现在的工作方式,每次要更改要运行aop的方法列表时,都必须更新特定于aop的代码,即使它们都应该执行完全相同的操作。@Stultuske,在所有实现中都需要该aop。但是,Test.validate(..)现在可以工作了。@Stultuske,创建自定义注释也不能工作。它向我显示带有消息“3 Spring AOP marker at this line”的标记。Spring AOP与代理一起工作。由于代理的原因,AOP将只应用于进入对象的方法调用,当进行内部方法调用时(就像您正在做的),它们不会通过代理,因此不会应用AOP。