簡(jiǎn)介
事務(wù)是在 開(kāi)發(fā)中非常重要的事情邪蛔。在spring體系中,有關(guān)事務(wù)的兩個(gè)注解是@EnableTransactionManagement
以及@@Transactional
扎狱,下面介紹一下這兩個(gè)注解侧到。
@EnableTransactionManagement // 等同于xml配置方式的 <tx:annotation-driven />
這個(gè)注解可以放在springboot的啟動(dòng)類上,也可以放在配置類上淤击。他的作用是開(kāi)啟事務(wù)管理匠抗。他是
spring-tx
中的注解,不是springboot中的注解污抬。如果你添加的是 spring-boot-starter-jdbc 依賴(mybatis框架也會(huì)依賴jdbc)汞贸,框架會(huì)默認(rèn)注入 DataSourceTransactionManager 實(shí)例。如果你添加的是 spring-boot-starter-data-jpa 依賴,框架會(huì)默認(rèn)注入 JpaTransactionManager 實(shí)例著蛙。springboot的autoconfigure是默認(rèn)已經(jīng)有這個(gè)注解的删铃,所以在springboot中不需要再次使用這個(gè)注解。
image.png
可以看到使用mybatis-plus踏堡,它依賴于mybatis猎唁,而mybatis又使用到j(luò)dbc,所以不需要配置這個(gè)注解,默認(rèn)就已經(jīng)有顷蟆。
@Transactional
這個(gè)注解是用來(lái)聲明這個(gè)類或者方法需要開(kāi)啟事務(wù)诫隅。