Java 将方面绑定到超级方法调用而不是子方法调用
我正在编写方面,我想在执行存储库保存方法之后添加一些逻辑。为了实现这一点,我写道:Java 将方面绑定到超级方法调用而不是子方法调用,java,spring,spring-data,aop,spring-aop,Java,Spring,Spring Data,Aop,Spring Aop,我正在编写方面,我想在执行存储库保存方法之后添加一些逻辑。为了实现这一点,我写道: @After("execution(* com.myApp.jpa.MyRepository.save(MyEntity)) && args(entity)") 不幸的是,由于我的存储库扩展了: org.springframework.data.jpa.repository.JpaRepository 这方面必须: org.springframework.data.jpa.repository.
@After("execution(* com.myApp.jpa.MyRepository.save(MyEntity)) && args(entity)")
不幸的是,由于我的存储库扩展了:
org.springframework.data.jpa.repository.JpaRepository
这方面必须:
org.springframework.data.jpa.repository.JpaRepository#save
它与Iterable实体一起工作,而不是可以通过超级方法访问的单个对象:
org.springframework.data.repository.CrudRepository#save(S)
问题是:对于这种情况,语法是否提供了编写只匹配超级方法调用的表达式的方法?
我试过这个:
@After("execution(* com.myApp.jpa.MyRepository.save(..)) && args(entity)")
但是,它适用于两种方法,而不仅仅是超级调用