spring 强制使用cglib做动态代理有哪些好处?

spring中可以使用<aop:aspectj-autoproxy proxy-target-class="true" />来强制使用cglib做动态代理,请问有什么好处?

阅读 7.5k
1 个回答

CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(类似继承)。而JDK动态代理只能对实现了接口的类生成代理,而不能针对类。

记得有个很经典的问题:如果不做特殊配置 spring的@transactional注解,放在类中非接口内的方法上时,是不起作用的。因为spring默认使用JDK的代理,被spring代理的类只能拦截接口中的方法,不能拦截非接口中的方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏