当前位置: 首页 > 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();
}

相关文章:

  • Ubuntu系统配置C++的boost库(含filesystem模块)的方法
  • 自驾总结_Prediction
  • 沉金电路板工艺解析:从原理到应用的全面指南
  • 面向开发者的提示词工程③——文本总结(Summarizing)
  • 麒麟信安系统下修改系统默认记录日志大小
  • mongodb源码分析session异步接受asyncSourceMessage()客户端流变Message对象
  • [Java恶补day16] 238.除自身以外数组的乘积
  • [蓝桥杯]全球变暖
  • 常见排序算法时间、空间复杂度总结
  • vue-19(Vuex异步操作和变更)
  • Python训练营打卡Day45
  • Spring Boot统一功能处理深度解析
  • 系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
  • 网络安全面试题目(无答案)
  • Next.js中Protected Route(受保护路由)
  • reverse笔记
  • Neo4j 完全指南:从入门到精通
  • 八:操作系统设备管理之缓冲、缓存与假脱机
  • 编程技能:格式化打印05,格式控制符
  • NVM!(可以快速替换你的node版本)
  • 最新新闻热点事件简短/郑州网站seo服务
  • 网站建设入门/厦门网站优化公司
  • 外贸推广信邮件/网站seo基础优化
  • 专业的网站建设哪家快/软文推广文案
  • thinkphp网站优化/怎么投放网络广告
  • 专业网站建设开发/杭州seo搜索引擎优化公司