- 持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情
我们来说一下事务的传播特性
程序员必会-事务的失效场景及解决方案一篇:我们讲到 同一个service中test1调用test2、test3、test4。那就迎来今天这一篇事物的传播行为
什么是事务的传播行为
- 一个service中的方法调用其他service中的方法,来共同完成一组的业务操作。接口与接口,接口与方法,之间的嵌套调用。
有那些传播行为
Transactional在spring那个包下
讲着讲着 就跟进去源码了开始看源码直接直接
摩嘴皮子没用
看下这个Transactional 注解中的有哪些属性,嘿嘿。
挺牛比的,我也没看懂。苦笑
- 咱们就先看这个属性 如下
/**
* The transaction propagation type. 事务的类型
* <p>Defaults to {@link Propagation#REQUIRED}.Propagation#REQUIRED 默认的是它
* @see org.springframework.transaction.interceptor.TransactionAttribute#getPropagationBehavior()
*/
Propagation propagation() default Propagation.REQUIRED;
这里就印证了为啥默认了,源码这么写的
srping 是真牛。通过注解,引入枚举,在通过枚举引入接口,对应的种类是在接口中定义的常量。说实话我真的不知它怎么去实现的。太牛了
- 具体怎么实现怪小生,学术短浅。未能满足大家。
给大家讲一下 编程式事务、声明式事务
- 平时我们在开发过程中使用 @Transactional 可以作用在方法、类、接口上。这就是声明式事务
- 编程式事务 就是我们就锁那一段代码块 锁的粒度更小