- 2
- 0
- 约3.25千字
- 约 2页
- 2023-06-01 发布于上海
- 举报
java事务传播特性,Spring-七种事务传播特性
以下⾯2个⽅法为例:
@Service
public class DaoService {
@Transactional
public void laoda() {
System.out.println(⽼⼤的⽅法);
//在⽼⼤⽅法⾥⾯调⽤⼩弟⽅法
xiaodi();
}
@Transactional
public void xiaodi() {
System.out.println(⼩弟的⽅法);
}
}
Spring总共给了7种事务的传播特性:
就是多个事务⽅法相互调⽤时,事务如何在这些⽅法间传播
问题:什么叫传播特性, 拿上⾯两个⽅法来说,⽼⼤⽅法调⽤⼩弟⽅法,⽼⼤⽅法⾥⾯发⽣异常⼩弟事务怎么处理?
分三类:
1.=死活不要事务===
1) PROPAGATION_NEVER: 没有就⾮事务执⾏,有就抛异常
eg: ⽼⼤调⽤⼩弟⽅法,⼩弟不允许有事务,当⼩弟发现⽼⼤有事务时,直接抛异常,我不⼲,没有就正常运⾏
2) PROPAGATION_NOT_SUPPORTED: 没有就⾮事务执⾏,有就直接挂起,然后⾮事务执⾏
eg: ⽼⼤调⽤⼩弟⽅法,⼩弟不允许有事务,当⼩弟发现⽼⼤有事务时,就将⽼⼤的事务挂起,换句话说就是⽼⼤的事务管不着⼩弟,⼩弟
原创力文档

文档评论(0)