spring事务管理机制——个人了解与总结

现讲使用Jar包,

1、在SpringBoot中,使用spring-boot-starter-jdbc 或者 spring-boot-starter-data-jpa 依赖,框架会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager,然后不需要任何配置与手写代码,直接使用@Transactional注解进行事务管控

后说事务注意点

1、spring的事务规则是遇到运行异常,也就是RuntimeException或程序报错Error的时候才会触发回滚,

2、如果是自己手写throw new Exception()的时候,需要在@Transactional注解后面加上(rollbackFor=Exception.class)指定需要回滚的异常才会正常回滚,以此类推,指定不同的异常进行回滚,需要有多个异常进行回滚时,用“,”逗号隔开(这边有个疑问,所有其他的报错,父类都是Exception.class,是不是意思是,我只要使用Exception.class,其余手动thorw出来千奇百怪的异常,都会回滚?已解决,是;但是Exception.class的基类是Throwable.class,却不用Throwable.class,不知为何,也无为何,因为一般情况下Exception.class已够用)

3、如果需要发现异常后进行回滚,就不要在业务逻辑代码的方法中捕捉异常(try()catch{})()),因为异常会被方法吃掉,从而不回滚,做法应该是在impl中throw出来,在Controller层上加@Transactional

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值