Springboot通過aop實現(xiàn)事務控制過程解析
spring的事務控制本質(zhì)上是通過aop實現(xiàn)的。
在springboot中使用時,可以通過注解@Transactional進行類或者方法級別的事務控制,也可以自己通過spring提供的事務管理器手動控制事務
一、 @Transactional注解進行進行類或者方法級別的事務控制
不需要進行特別的設(shè)置,按照正常的配置整合spring和mybatis后,在需要進行事務控制的類上或者方法上加上
@Transactional注解,即可對其進行事務控制。
二、手動控制事務
當需要在一個方法的內(nèi)部進行事務控制時,就需要利用spring提供的事務管理器來手動控制。在方法所在的類中注入事務管理器,然后在方法中需要的位置利用事務管理器進行控制:開啟事務,提交事務,回滾事務
@Autowired PlatformTransactionManager platformTransactionManager; @Autowired TransactionDefinition transactionDefinition; public void testTransaction() { //開啟事務 TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); try { CategoryInfo categoryInfo1=new CategoryInfo(); categoryInfo1.setName("分類1"); categoryDataDao.add(categoryInfo1); //模擬發(fā)生異常,事務回滾后應該數(shù)據(jù)庫兩條記錄都沒有 int i=1/0; CategoryInfo categoryInfo2=new CategoryInfo(); categoryInfo2.setName("分類2"); categoryDataDao.add(categoryInfo2); //提交事務 platformTransactionManager.commit(transactionStatus); } catch (Exception e) { logger.error("發(fā)生異常事務回滾"); platformTransactionManager.rollback(transactionStatus); } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java中使用session監(jiān)聽實現(xiàn)同帳號登錄限制、登錄人數(shù)限制
本文主要介紹了java中使用session監(jiān)聽實現(xiàn)同帳號登錄限制、登錄人數(shù)限制,通過session來監(jiān)聽在線人數(shù)和登陸限制,有需要的童鞋可以了解一下。2016-10-10java小知識之查詢數(shù)據(jù)庫數(shù)據(jù)的元信息
這篇文章主要給大家介紹了關(guān)于java小知識之查詢數(shù)據(jù)庫數(shù)據(jù)的元信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2021-10-10Java數(shù)據(jù)結(jié)構(gòu)之ArrayList從順序表到實現(xiàn)
Java中的ArrayList是一種基于數(shù)組實現(xiàn)的數(shù)據(jù)結(jié)構(gòu),支持動態(tài)擴容和隨機訪問元素,可用于實現(xiàn)順序表等數(shù)據(jù)結(jié)構(gòu)。ArrayList在內(nèi)存中連續(xù)存儲元素,支持快速的隨機訪問和遍歷。通過學習ArrayList的實現(xiàn)原理和使用方法,可以更好地掌握Java中的數(shù)據(jù)結(jié)構(gòu)和算法2023-04-04使用Java的方式模擬Flutter的Widget實現(xiàn)多層括號嵌套
這篇文章主要介紹了使用Java的方式模擬Flutter的Widget的實現(xiàn)多層括號嵌套問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07Json字符串與Object、List、Map的互轉(zhuǎn)工具類
今天小編就為大家分享一篇關(guān)于Json字符串與Object、List、Map的互轉(zhuǎn)工具類,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12