spring事务管理
spring 事务运行时异常默认回滚
spring事务检查性异常不会回滚,如果需要回滚,添加rollback-for="抛出的异常类"
如:<tx:method name="transfer" rollback-for="java.io.FileNotFoundException" />
(1)声明式事务
在applicationContext.xml中加入
<!-- 声明式事务配置开始 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 配置事务增强处理Bean,指定事务管理器 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="transfer" /> <tx:method name="*" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="myPointcut" expression="execution(* com.service.impl.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut" /> </aop:config>
(2)注解事务
在加入事务的方法上添加注解(@Transactional)
在applicationContext.xml中添加<tx:annotation-driven/>