spring的事务控制
- Spring提供了一组事务控制的接口,在spring-tx-…jar中.
- PlatformTransaction接口的实现类 当用JDBC,iBatis,用DataSourceTransactionManger.
- 基于XML的配置.
- 配置事务管理器.
- 配置事务的通知. (此时需要导入事务的约束 有aop tx) < tx:advice >
- 配置AOP中的通用切入点表达式
- 建立事务通知和切入点表达式的关系
- 配置事务的属性 (在事务的通知里面嵌入配置.)
配置事务管理器
<bean id="transactionManager" class="...DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></0100.0.
property>
</bean>
配置事务的通知
<tx:advice id="txAdvice" transaction-manger="transactionManager">
<tx:attributes>
<!--isolation:隔离级别 propagation:指定事务的传播行为 增删改用REQUIRED 查询方法选SUPPORTS-->
<tx:method name="find*" propagation="SUPPROTS" /> <!--即所有以find开头的查询方法-->
</tx:attributes>
</tx:advice>
<aop:config>
<!--配置切入点表达式-->
<aop:pointcut id="pt1" expression="execution(* com.hk.service.imp.*.*(..))"></aop:pointcut>
<!-- 建立事务通知和切入点表达式的关系 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor>
</aop:config>
-
基于注解的配置.
- 配置事务管理器.
- 开启spring对注解事务的支持. < tx: annotation-driven>
- 在需要事务支持的地方使用@Transactional注解 .(属性在这里全部包含,XML更方便,因为在这里,若有5个只读,5个需要读取, 则至少要配6个. [1个全部的,另5个单独配])
-
编程式事务管理 (了解)
-
使用TransactionTemplate
Spring框架整合事务管理器即可,见Spring框架整合 文章最后面.