一.注解方式创建事务
1.配置文件
(1)创建事务管理器
<bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> </bean>
(2)开启事务注解
<tx:annotation-driven transaction-manager="TransactionManager"></tx:annotation-driven>
(3)在要添加事务的方法或者类上加上@Transactional,若加在类上,则类所有的方法都添加事务。
该注解中有一些参数
①propagation事务的传播行为
②ioslation事务的隔离性
与之前mysql事务的隔离性类似
③timeout超时时间
事务在设置时间内要提交,不然回滚(默认值为-1)
④readOnly是否只读
默认值为false,可以增删改查,设置成true后只能查询。
⑤rollbackFor回滚
设置哪些异常要回滚
⑤noRollbackFor不回滚
设置哪些异常不要回滚
二.xml配置创建事务
与注解方式相比,没有开启事务注解和@Transactional。
再加上
1.配置通知
<tx:advice id="名字"> <tx:attributes> <tx:method name="要加事务的方法名"/>//还可以加入注解中参数有的属性 </tx:attributes> </tx:advice>
2.配置切入点
<aop:config> <aop:pointcut id="pt" expression="execution表达式"/> <aop:advisor advice-ref="名字" pointcut-ref="pt"></aop:advisor> </aop:config>