使用CGLIB代理时,无法在Spring Data JPA存储库上创建Spring AOP方面

时间:2015-07-28 14:26:15

标签: spring-data spring-aop cglib

我正在尝试在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!");
    }
}

0 个答案:

没有答案