1、基于JDK动态代理:
java代码:
<tx:annotation-driven transaction-manager="txManager"/>
该配置方式默认就是JDK动态代理方式
@Transactional()
可以将注解放到接口上
2、基于CGLIB类代理:
j
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>
将注解放在具体类上或具体类的实现方法上才会起作用
3、基于aspectj的
<tx:annotation-driven transaction-manager="txManager" mode="aspectj" proxy-target-class="true"/>
基于JDK动态代理 ,可以将@Transactional放置在接口和具体类上。
基于CGLIB类代理,只能将@Transactional放置在具体类上。
因此 在实际开发时全部将@Transactional放到具体类上,而不是接口上。
实现:
JDK动态代理
Spring使用JdkDynamicAopProxy实现代理
CGLIB动态代理
通过Cglib2AopProxy实现代理,而内部通过DynamicAdvisedInterceptor进行拦截
Spring使用AnnotationTransactionAttributeSource通过查找一个类或方法是否有@Transactional注解事务来返回TransactionAttribute(表示开启事务):
http://www.2cto.com/kf/201203/122445.html
分享到:
相关推荐
spring事务配置详解 spring事务配置详解
Spring事务原理、Spring事务配置的五种方式
全面解析spring事务配置的五种方式,好不容易找到的
很全面的介绍spring的事务配制方法。初学者可以看看
Spring 事务配置SpringSpring 事务配置Spring 事务配置Spring 事务配置Spring 事务配置Spring 事务配置
spring 事务配置 spring 事务配置 spring 事务配置
详细说明spring事务配置的5种方式 让你对spring 有更深入的认识
Spring 事务配置解惑.html 抓下来打包成了HTML文件, 方便离线观看
spring事务配置管理
Spring事务配置的五种方式.doc
struts+hibernate+spring事务配置
Spring事务配置管理分解,主要讲解spring事务这块可预览 Spring事务配置管理分解,主要讲解spring事务这块可预览
Spring事务配置的五种方式.很实用,有指导意义!找了很久才找到!
spring事务配置.pdf
Spring事务配置的五种方法 Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、...
spring 事务配置的五种方法 1:每个bean都有个代理 2:所有bean共享一个代理基类 3:拦截器 4:tx标签拦截器 5:全注释(注记)
Spring事务配置的例子。有多种方法,有传统的XML,还有Annotation等等