springboot註解以及手動使用事務
阿新 • • 發佈:2022-05-25
一、註解方式
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); }