我在我的项目中使用Spring Data。所以,我只需要从某些实体拦截一些方法(保存和删除)。我尝试为自己的存储库接口配置切入点,但没有成功。这些方法没有被截获。
所以,我发现了一个尝试将Spring CrudRepository接口用于我的dotcup的解决方案。
@Aspect
@Component
@Configurable
public class AuditLogAspect {
@Pointcut("execution(* org.springframework.data.repository.CrudRepository+.save(*)) || " +
"execution(* org.springframework.data.repository.CrudRepository+.saveAndFlush(*))")
public void whenSaveOrUpdate() {};
@Pointcut("execution(* org.springframework.data.repository.CrudRepository+.delete(*))")
public void whenDelete() {};
@Before("whenSaveOrUpdate() && args(entity)")
public void beforeSaveOrUpdate(JoinPoint joinPoint, BaseEntity entity) {...}
}
这是一个很好的方法!拦截器成功执行!但我的情况有点不同。我有大约20个接口从Spring Data扩展JPARepository接口,然后我需要拦截其中的15个。其他的,我不能。
因此,我的问题是:有没有办法拦截我自己的接口的某些方法,这些方法使用AOP或其他任何东西从Spring Data扩展JPARepository接口?
提前感谢您的帮助!