转自:基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别
摘要
结论:
- 基于JDK动态代理 ,可以将@Transactional放置在接口和具体类上。
- 基于CGLIB类代理,只能将@Transactional放置在具体类上。
因此 在实际开发时全部将@Transactional放到具体类上,而不是接口上。
如何启用cglib动态代理
- 如果设置proxy-target-class=true,Spring将使用CGLIB动态代理,而内部通过Cglib2AopProxy实现代理
<tx:annotation-driven proxy-target-class="true"/>