- spring事务管理详解引用博客:https://blog.csdn.net/donggua3694857/article/details/69858827
- Spring事务管理两种方式:
- 编程式事务管理(不用)
- 声明式事务管理(1)基于xml配置文件实现;(2)基于注解实现
- spring事务管理的api介绍
接口:PlatformTransactionManage
- spring针对不同的dao层框架,提供接口不同的实现类 eg:JdbcTemplate的实现类org.springframework.jdbc.datasource.DateSourceTransactionManager
- 配置事务管理器
- Spring的事务管理
- 注解实现:(1配置事务管理器;2开启事务注解;3在要使用事务的方法所在类上面添加注解)
<!--使用注解方式完成事务管理--> <!--1配置事务管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!--2开启事务注解--> <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
- 通过xml配置实现
<!--使用配置方式--> <!-- 第一步 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 注入dataSource --> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 第二步 配置事务增强 --> <tx:advice id="txadvice" transaction-manager="transactionManager"> <!-- 做事务操作 --> <tx:attributes> <!-- 设置进行事务操作的方法匹配规则 --> <tx:method name="account*" propagation="REQUIRED"/> <!-- <tx:method name="insert*" /> --> </tx:attributes> </tx:advice> <!-- 第三步 配置切面 --> <aop:config> <!-- 切入点 --> <aop:pointcut expression="execution(* com.sun.tx.service.OrderService.*(..))" id="pointcut1"/> <!-- 切面 --> <aop:advisor advice-ref="txadvice" pointcut-ref="pointcut1"/> </aop:config>