现讲使用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