Spring事務傳播行為是什么?怎么用?其實這些困擾都可以總結成一個問題,即Spring事務傳播行為的實現方式,下面我們運用實例來展示Spring事務傳播行為的實現方式。
在成都網站建設、成都網站制作中從網站色彩、結構布局、欄目設置、關鍵詞群組等細微處著手,突出企業的產品/服務/品牌,幫助企業鎖定精準用戶,提高在線咨詢和轉化,使成都網站營銷成為有效果、有回報的無錫營銷推廣。創新互聯專業成都網站建設十年了,客戶滿意度97.8%,歡迎成都創新互聯客戶聯系。假如有兩個方法A和B,A調用B,這兩個方法上都加了事物,究竟使用哪個事物?
Public void A(){
B();
}
這就是spring事物傳播行為要解決的問題。
在spring中有七種事務傳播行為。
簡單介紹一下這七種方式(如果不懂不用糾結,后面詳細介紹)
常用:
REQUIRED:如果當前沒有事務,就新建一個事務,如果已經存在一個事務中,加入到這個事務中,一般的選擇(默認值)
REQUIRES_NEW : 新建事務,如果當前在事務中,把當前事務掛起。
我們重點介紹一下常用的兩種:
一:
數據訪問層:
@Repository("accountDao")
public class AccountDaoImpl{
updateAccount(Account account) { jdbcTemplate.update(,account.getMoney(),account.getId()); }
}
業務邏輯層:
@Service("accountService")
public class AccountServiceImpl{
@Transactional(propagation=Propagation.REQUIRED)
transfer(Account source, Account target, Float money) { source.setMoney(source.getMoney()-money);target.setMoney(target.getMoney()+money);.updateAccount(source); .updateAccount(target); }
@Transactional(propagation=Propagation.REQUIRED)
transferException(Account source, Account target, Float money) { source.setMoney(source.getMoney()-money);target.setMoney(target.getMoney()+money);.updateAccount(source); i=1/0; .updateAccount(target); }
}
測試:
@Test public voidtestDo(){ serviceImpl.transfer("%張%","%李%",1000f);
serviceImpl.transferException ("%張%","%李%",2000f);
int I = 1/0; }
現在測試的方法testDo上沒有加事務,當它調用serviceImpl.transfer()方法的時候,因為transfer使用REQUIRED修飾,所以transfer會新建一個事務,自己獨立在該事務執行,成功轉賬1000,張三賬戶1000,李四4000。當調用serviceImpl.transferException時新建事務,在執行該方法時發生異常,事務回滾,所以轉賬不成功,張三賬戶1000,李四4000,此時這兩個方法都是在自己的事務中獨立執行。
@Test
public voidtestDo(){ serviceImpl.transfer("%張%","%李%",1000f);
serviceImpl.transferException ("%張%","%李%",2000f);
}
當它調用serviceImpl.transfer()方法的時候transfer方法和transferException方法加入到testDo方法的事務中,他們都在一個事務,當發生異常的時候事務回滾,轉賬1000和2000都不成功,張三賬戶2000,李四3000。
二::
測試:
@Test public voidtestDo(){ serviceImpl.transfer("%張%","%李%",1000f);
serviceImpl.transferException ("%張%","%李%",2000f);
int I = 1/0; }
關于Spring事務傳播行為的實現方式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站標題:Spring事務傳播行為是什么?怎么用-創新互聯
文章來源:http://vcdvsql.cn/article28/ishjp.html
成都網站建設公司_創新互聯,為您提供App設計、外貿建站、營銷型網站建設、網站導航、定制開發、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯