Spring的事务使用

 大家好,今天小辉就讲一下Spring的事务。事务百度上的解释是

这个事务解释很明确哈就是要做的或所做的事情,在数据库中其实就是你要执行的语句,你要执行多少条语句,这些语句顺序怎样执行的你都可以通过事务来控制,事务还有一个特性就是可以后悔,对已经执行的语句进行回滚,(小辉开车中:想拥有这个特性呢)。转回来 ,Spring 事务其实就是对数据库事务的支持了。Spring 事务的隔离级别和数据库中的隔离级别是相对应的。但是Spring事务有声明式和编程式,小辉就讲一下注解声明式,aop声明式事务和编程式局部事务,(由于很多都开始使用Java配置类替换xml,xml现在就不讲了哦,),这里我分的声明式和编程式主要式通过和业务代码的解耦情况来分的,如果有更好的理解欢迎提出哦。

 

1.注解声明式事务:

其实声明式事务注解在Spring boot项目中可以快速实现,在启动类上加上注解@EnableTransactionManagement,

这就是开启了Spring事务,事务开启肯定式在数据源的基础上嘛,配置文件里面加上数据源的配置就可以了

下面式简单的使用:

(写在方法的上面)

/**
* 作用在方法上方法自定有回滚
*/
@GetMapping(value = "addBlogFailToMethod")
@Transactional
public void addBlogFailToMethod() {
Blog blog = new Blog("测试文章ToMethod", "书法家深刻搭街坊昆仑山大家快乐的数据库", "描述");
try {
blogDao.save(blog);
int i = 1 / 0;
log.info("新增数据成功,id={}", blog.getId());
} catch (Exception e) {
log.error("Blog新增异常事务回滚:id={}", blog.getId());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}

(写在类的上面)

@RestController
// 根据需求自定义配置回滚还是提交。。。
@Transactional(rollbackFor = Exception.class)
public class BaseController {
}
只要继承了这个类,抛出异常就会进行事务回滚(事务的传di性),括号里面的属性根据自己的需求进行配置就OK了

但是注解的方法必须是public修改。如果是类上写注解那么只会作用在public修饰的方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值