我正在尝试在Spring Data JPA Repository上应用一个方面,它可以在默认的Spring AOP配置下正常工作
@EnableAspectJAutoProxy
(当Spring使用标准的基于Java接口的代理时)。
但是,当我切换到CGLIB代理时:
@EnableAspectJAutoProxy(proxyTargetClass = true)
我得到了这个例外:
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy59]:
看起来Spring试图将CGLIB代理包装在一个存储库类上,该存储库类已经是一个CGLIB代理(由Spring Data生成)并且失败了。
任何想法如何使其发挥作用?
My Spring Data Repository:
import org.springframework.data.jpa.repository.JpaRepository;
public interface DummyEntityRepository extends JpaRepository<DummyEntity, Integer> {
}
和方面:
@Aspect
public class DummyCrudRepositoryAspect {
@After("this(org.springframework.data.repository.CrudRepository)")
public void onCrud(JoinPoint pjp) {
System.out.println("I'm there!");
}
}