动态加载类注册到spring容器时的坑
主要大坑(把目前遇到的写在这里,持续更新):
动态加载的类无法使用 CGLib 代理,原因是动态加载的类无法继承,而 CGLib 是通过创建子类来代理的。
spring中很多地方都是自动代理,无法手动选择,动态加载的类只能在编写代码时避免被代理。
在将动态加载的类注册到spring容器中时会出现如下错误:
Could not generate CGLIB subclass of class ......
导致以上错误的原因:
1.使用切面会导致被代理,如应用中使用了切面类 @Aspect,动态加载的类刚好被切面类拦截,此时将会出现上面的报错,应将动态加载的类
2.使用 @Transactional 注解会导致被代理