spring事务如何实现
时间: 2023-09-12 22:10:58 浏览: 88
spring编程式事务实现
Spring事务的实现基于数据库事务和AOP机制。当一个使用了@Transactional注解的Bean被调用时,Spring会创建一个代理对象作为Bean。代理对象会判断方法上是否加了@Transactional注解,如果加了,事务管理器会创建一个数据库连接,并将该连接的autocommit属性设置为false,禁止自动提交。然后,在当前方法中执行SQL语句。如果方法执行完毕没有出现异常,事务会直接提交。如果出现需要回滚的异常,事务会回滚,否则继续提交事务。
另外,Spring事务的隔离级别对应的就是数据库的隔离级别,而Spring事务的传播机制是基于数据库连接来实现的。当传播机制配置为需要新开一个事务时,实际上就是新建一个数据库连接,在新连接上执行SQL。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Spring事务是怎么实现的?](https://blog.csdn.net/dayuiicghaid/article/details/125262298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Spring 事务](https://blog.csdn.net/weixin_30547797/article/details/98114431)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文