`

spring 事物

 
阅读更多

Spring事物 主要知识点, spring的传播属性 spring的隔离级别 spring事物的管理机制

Spring事物的传播属性界定了事物的方法的范围, spring的传播属性有7中主要有一下几种,REQUIRED SUPPORTS MANDATORY REQUIRED_NEW NOT_SUPPORT NEVER NESTED

@Trancational主要使用在哪些地方,作用于类:当把@Transactional 注解放在类上时,表示所有该类的public方法都配置相同的事务属性信息。

作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。

作用于接口:不推荐这种使用方法,因为一旦标注在Interface上并且配置了Spring AOP 使用CGLib动态代理,将会导致@Transactional注解失效

@Transactional失效的场景主要有一下6

1 使用在非public方法上

2 事物的传播属性设置不正确 NOT_SUPPORT NEVER  SUPPORT

3 同一个类中有一个方法 A方法没使用Tansactional标注,A方法调用了B方法(B方法标注了Transactional注解) B方法的事物是不能生效的

4 @Transactional的属性 rollbackFor设置错误, spring默认unCheckException(Error)才回滚事物

5 catch被吃掉了

 

6 数据库引擎不支持事物

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics