首页 > 代码库 > Could not generate CGLIB subclass of class[class X

Could not generate CGLIB subclass of class[class X

Spring AOP 配置需要注意的问题,CGLIB


在生成aop代理类的时候,报错: Could not generate CGLIB subclass of class [class XXXX]: Common causes of this problem include using a final class or a non-visible class;

后经过检查,  原来在spring启动aop的配置里面是这样写的

1 <aop:aspectj-autoproxy proxy-target-class="true"/> 

2<tx:annotation-driven proxy-target-class="true" transaction-manager="txManager" />
这样的情况,Spring是采用CGLIB去代理,而采用此方式代理,是不可以面向接口编程的,也就是说要代理的类不可以实现接口,而且要想正常使用貌似还要加上一个默认构造函数.

所以,解决这个问题,用Spring默认的代理方式就可以了,配置改成

1 <aop:aspectj-autoproxy/>

2<tx:annotation-driven  transaction-manager="txManager" />

就OK了.


Could not generate CGLIB subclass of class[class X