1. 程式人生 > 其它 >springboot註解以及手動使用事務

springboot註解以及手動使用事務

一、註解方式

springBoot專案要用事務,使用註解方式時只需要在啟動類加上@EnableTransactionManagement。

並在想使用事務的方法中加上@Transactional註解即可。

@SpringBootApplication
//①在啟動類中加上註解
@EnableTransactionManagement
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}
 
//②在對應的方法中加註解 @Transactional(rollbackFor = Exception.class) public void registerUser(User user) throws Exception { ... userMapper.updateUser(user); ... }

附:@Transactional引數說明: 

事務傳播行為

事務傳播行為(propagation behavior)指的就是當一個事務方法被另一個事務方法呼叫時,這個事務方法應該如何進行。
例如:methodA事務方法呼叫methodB事務方法時,methodB是繼續在呼叫者methodA的事務中執行呢,還是為自己開啟一個新事務執行,這就是由methodB的事務傳播行為決定的。
Spring定義了七種傳播行為:(預設為Propagation.REQUIRED)

 二、方法內部手動控制事務

2.1、注入事務相關的bean

@Autowired
private PlatformTransactionManager platformTransactionManager;

@Autowired
private TransactionDefinition transactionDefinition;

2.2、結合try-catch使用事務

TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
try
{ dosomething.... platformTransactionManager.commit(transactionStatus); } catch (Exception e) { platformTransactionManager.rollback(transactionStatus); }