索引
链接
https://developer.ibm.com/zh/articles/j-master-spring-transactional-use/
文章截图
简评
因工作需要,今天仔细了解了一下spring的@Transactional注解的使用要点。
我觉得大部分项目使用这个注解应该是@Transactional(value = “xxx”)这样使用的,这最基本的使用代表了我们使用“xxx”这个事务管理器来管理事务,也就是我们肯定在spring内部配置了这样的事务管理器:
<bean id="xxx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="bizDataSource"/> </bean>
然后事务就在这里配置的datasource上生效。如果只是写@Transactional不指定具体的事务管理器,那么spring会使用xml中配置的第一个事务管理器来进行事务处理。
还有三个要注意的点是:
- 类内部的方法调用自己的标有@Transactional注解的方法时,事务是不生效的
- 标有@Transactional的非public方法的事务不生效
- 抛出非RuntimeException和非Error异常时,事务是不生效的
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2127