java事务使用
程序员文章站
2022-07-05 07:58:28
...
- 需要在application.xml中配置事务声明
<!-- 配置事务管理器,全注解声明式事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
- 在web.xml中开启对事物注解的解析
<!--开启了对注解的解析-->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
- 在方法上加上事务注解,propagation属性在说明在:这里,rollbackFor指定方法抛出什么异常后自动回滚。
@Transactional(propagation=Propagation.REQUIRED, rollbackFor=RuntimeException.class)
- 如果用try,catch抓住了异常,想要回滚:要么抛出继承了RuntimeException异常的异常,让程序自动回滚;要么在catch中手动回滚。手动回滚代码为:
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();