当前位置: 首页 > news >正文

Spring之事务管理方式

Spring支持两种方式的事务管理


1.编程式事务管理

通过 TransactionTemplate或者TransactionManager手动管理事务,实际应用中很少使用,但是对于你理解 Spring 事务管理原理有帮助。

使用TransactionTemplate 进行编程式事务管理的示例代码如下:

@Autowired
private TransactionTemplate transactionTemplate;
public void testTransaction() {transactionTemplate.execute(new TransactionCallbackWithoutResult() {@Overrideprotected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {try {// ....  业务代码} catch (Exception e){//回滚transactionStatus.setRollbackOnly();}}});
}

使用 TransactionManager 进行编程式事务管理的示例代码如下:

@Autowired
private PlatformTransactionManager transactionManager;public void testTransaction() {TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try {// ....  业务代码transactionManager.commit(status);} catch (Exception e) {transactionManager.rollback(status);}
}

2.声明式事务管理

推荐使用(代码侵入性最小),实际是通过 AOP 实现(基于@Transactional 的全注解方式使用最多)。

使用 @Transactional注解进行事务管理的示例代码如下:

@Transactional(propagation = Propagation.REQUIRED)
public void aMethod {//do somethingB b = new B();C c = new C();b.bMethod();c.cMethod();
}

http://www.lqws.cn/news/147061.html

相关文章:

  • 网络安全全景解析
  • 【联网玩具】EN 18031欧盟网络安全认证
  • 解读《网络安全法》最新修订,把握网络安全新趋势
  • 【论文解读】MemGPT: 迈向为操作系统的LLM
  • 攻防世界-XCTF-Web安全最佳刷题路线
  • 【网络安全】XSS攻击
  • 浅谈 Linux 防火墙:从原理到实践
  • 相机Camera日志分析之二十五:高通相机Camx 基于预览1帧的process_capture_request四级日志分析详解
  • 【SSM】SpringBoot学习笔记1:SpringBoot快速入门
  • AWS Elastic Beanstalk + CodePipeline(Python Flask Web的国区CI/CD)
  • Kubernetes (k8s)版本发布情况
  • 厂区能源监控系统:网关赋能下的高效能源管理与环保监测
  • 导航路径优化(一)——平滑
  • NumPy数组操作完全指南:从入门到精通
  • 实数域上的二分
  • aiohttp异步爬虫实战:从零构建高性能图书数据采集系统(2025最新版)
  • PPT转图片拼贴工具 v2.0
  • PPT转图片拼贴工具 v4.3
  • 【Java工程师面试全攻略】Day5:MySQL数据库面试精要
  • Apache DolphinScheduler 和 Apache Airflow 对比
  • Hadolint:Dockerfile 语法检查与最佳实践验证的终极工具
  • PDF 转 HTML5 —— HTML5 填充图形不支持 Even-Odd 奇偶规则?(第二部分)
  • LuaJIT2.1 和 Lua5.4.8 性能对比
  • 大模型面试题总结
  • Hive的Parquet格式优化方法
  • Honor of Kings 2025.06.05
  • CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)
  • .NET 8集成阿里云短信服务完全指南【短信接口】
  • 【无标题】路径着色问题的革命性重构:拓扑色动力学模型下的超越与升华
  • Jenkins自动化部署Maven项目