Spring事务知识实践

  • Spring事务是基于JDBC事务实现
  • 它拥有PlatformTransactionManager的一套接口
  • 通俗点讲 就是数据库要支持事务 与Spring整合的框架也要支持事务
  • 不仅可以在数据层 也可以在业务层进行事务管理
  • 使用时要在方法上加@Transactional注解
  • 一般@Transactional写在抽象方法上 表示该方法的重写实现方法都带有此注解
  • @Transactional还可以写在类或者接口上 表示类成员方法都带有此注解
  • 而且要配置事务管理器@Bean
  • 事务管理器实现类为DataSourceTransactionManager
  • 需要DataSourceBean依赖注入
  • 最后告诉Spring开启了注解式事务驱动@EnableTransactionManagerment
@Transactional
@Bean
@EnableTransactionManagerment
  • Spring事务角色 事务管理员+事务协调员
  • 事务管理员一般是业务层
  • 事务协调员一般是数据层
  • Spring事务只有遇到Error和运行时异常才会回滚
  • 事务传播行为是指事务协调员对于事务管理员的态度@Transactional中的propagation属性
  • 事务传播行为有如下七点
    Spring事务传播行为:都为Propagation的枚举属性
    			1、required(默认属性)
    				如果存在一个事务,则支持当前事务,如果没有事务,则开启一个新的事务
    			2、Mandatory
    				支持当前事务,如果当前没有事务,就抛出异常
    			3、Never
    				以非事务方式执行,如果当前存在事务,则抛出异常
    			4、Not_supports
    				以非事务方式执行操作,如果当前存在事务,把当前事务挂起
    			5、requires_new
    				新建事务,如果当前存在事务,则把当前事务挂起
    			6、Supports
    				支持当前事务,如果当前没有事务,就以非事务方式执行
    			7、Nested
    				支持当前事务,新增Savepoint点,与当前事务同步提交或者回滚

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值