基于JDK动态代理和CGLIB动态代理到底有什么区别?

转自:基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别

摘要

结论:

  • 基于JDK动态代理 ,可以将@Transactional放置在接口和具体类上。
  • 基于CGLIB类代理,只能将@Transactional放置在具体类上。

因此 在实际开发时全部将@Transactional放到具体类上,而不是接口上。

如何启用cglib动态代理

  • 如果设置proxy-target-class=true,Spring将使用CGLIB动态代理,而内部通过Cglib2AopProxy实现代理
<tx:annotation-driven proxy-target-class="true"/>

猜你喜欢

转载自blog.csdn.net/flysharkym/article/details/53997433