1.springboot使用事務需要引入sprint-tx,但是在結合mybatisplus時,mybatis-plus已經代為引入了
2.在springboot的啟動類或者某個@Configuration上加上@EnableTransactionManagent開啟事務的支持(這個@EnableTransactionManagent是否必須添加,因為我沒有添加也可以使用事務,這是為什么呢?是必須加的,但是spring-boot會自動裝配,所以我們不用必須手動添加,但是springboot必須添加)
3.在service中使用@Transactional就可以使用事務了,@Transactional添加在方法中,方法支持事務,如果將@Transactional添加在類上,則整個類的所有方法都默認支持事務
4.@Transactional默認回滾的是RuntimeExcaption,如果不是拋出的RuntimeException則不會被回滾,【在spring框架下,所有的異常都被org.springwork重寫為RuntimeExcetpion,是否說明在service中拋出的所有異常都會被回滾,暫未驗證】
5.@Transactional(rollbackFor=Excetpion.class)可以指定步回滾的異常
6.使用try catch捕捉異常進行異常處理,除了throw異常,不會觸發回滾
參考:
https://blog.csdn.net/chaitoudaren/article/details/105622751
https://blog.csdn.net/qq_35890572/article/details/96286142