在需要加入事務的方法上加入註解@transactional
@transactional(rollbackfor = rollbackexception.class) 丟擲指定異常時回滾
/**
* * (rollbackfor = rollbackexception.class) 拋出自定義異常時,回滾事務。
* * @throws rollbackexception
*/@override
@transactional(rollbackfor = rollbackexception.class)
public void insertthenrollback() throws rollbackexception
例如有這個實現類studentserviceimpl:
@component
public class studentserviceimpl implements studentservice
/*** * spring的事務是通過aop進行**增強的。
* 這裡是在類的內部直接執行方法呼叫,並沒有呼叫**類來進行方法呼叫,所以這裡事務不會回滾。* *
* @throws rollbackexception
*/@override
public void invokeinsertthenrollback1() throws rollbackexception
}
上面的insertthenrollback()回回滾事務,invokeinsertthenrollback1()呼叫了insertthenrollback()方法但是不會回滾事務,這是為什麼呢?
這是因為spring的事務是通過aop進行**增強的,但這裡是在類的內部直接執行方法呼叫,並沒有呼叫**類來進行方法呼叫,所以這裡事務不會回滾。
/**
** 通過aopcontext.currentproxy()獲取當前類的**物件
** @throws rollbackexception
*/@override
public void invokeinsertthenrollback2() throws rollbackexception
//把自己的例項注入進來
@autowired
private studentservice studentservice;
/*** 把自己的例項注入進來
* @throws rollbackexception
*/@override
public void invokeinsertthenrollback3() throws rollbackexception
springBoot中mybatis事務使用方法
1.在springboot中mybatis plus boot starter 或 mybatis spring boot starter 會自動定義好事物,在pom.xml中匯入jar 3.在需要回滾的方法或類上新增註解 transactional user表資料會執行成功 而 userinfo表...
springboot中新增事務註解
1.首先在service層中的方法前新增 transactional service public class userservice transactional public void deletebyid integer id 2.在springboot的啟動中新增註解 enabletransa...
Spring Boot中的事務管理,事務的傳播行為
在宣告事務時,只需要通過value屬性指定配置的事務管理器名即可,例如 transactional value transactionmanagerprimary 所謂事務的傳播行為是指,如果在開始當前事務之前,乙個事務上下文已經存在,此時有若干選項可以指定乙個事務性方法的執行行為。指定方法 通過使...