spring去事务

关于spring事务管理器

spring只是做事务的管理,本身实际不执行事务。事务都是数据库进行执行。hibernate等orm框架,选择事务让spring管理,可以进行声明性xml配置,注解,代码式的配置。这些框架都是实现了spring对应事务管理接口。

为什么要用事务

业务决定我们需要多个数据库操作一起执行,一起成功或失败。

去事务

程序涉及到事务的一般操作步骤如下,实际情况比下面的复杂,sping的事务,涉及到传播行为。

  1. 开启事务
  2. 数据库
  3. 提交事务

目的

去事务,就是减少跟数据库操作,减少操作步骤。去除select操作不需要事务。根据情况而定,如果涉及到多个更新数据库操作,需要一起操作,就需要事务。

新建项目关于事务注意项

采用@Trasaction注解

推荐使用这种方式,颗粒度能自由的控制。后续如果不需要事务,去除注解就可以

声明式xml配置

采用这种配置,项目开发人员需共同约定,select,get等方法开头的不需要事务,在配置方法的传播行为,进行配置,NOT_SUPPORTS,或者SUPPORT

老项目的去事务改造

以xml声明式事务配置改造为例。事务配置到service的类,并提供接口给其他项目引用。事务改造需要了解方法到底是干什么的。主要是从下面几个面去考虑

  1. 工期
  2. 项目实际了解程度
  3. 改造不能带来安全问题(一个方法,可能被很多方法引用)
  4. 去事务的方式会不会带来代码维护度增加

去事务,首要考虑不能影响现有项目功能,安全第一。在对项目不了解的情况,采用保险方式,将改造业务涉及到需要去事务的类,移到新的package目录,将对应的去事务的方法移到的新package的类。之前旧的类不动,旧方法引用的新方法。提供对外的接口调用旧类方法,改调用新的类。带来的副作用,就是增加了代码的维度难度。

如果对项目了解程度高,可以直接将旧类移到新目录,需要用到事务的就采用注解,不需要用到事务就去除注解。这样就减少了代码的维护,徐徐渐进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值