中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

如何解決Spring事務中傳播行為的問題

這篇文章將為大家詳細講解有關如何解決Spring事務中傳播行為的問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

浮梁網站制作公司哪家好,找成都創新互聯!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。成都創新互聯從2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯

一、簡介

這里說明spring事務的幾點注意:

1、默認只會檢查回滾RuntimeException的異常。

2、@Transactional注解只能作用于public的方法上,默認傳播行為 Propagation.REQUIRED

3、service內部方法之間的調用,不會被spring攔截到,也即不會產生事務

二、坑點

主要的坑點就是在嵌套事務上,當service內部方法之間調用的時候,很可能會產生預期之外的效果。例如下例子:

saveUser保存用戶,如果過程出現異常,則執行saveMsg方法。

public class UserServiceImpl implements UserService{
 
  @Autowired
  private UserDao userDao;
  @Autowired
  private MsgDao msgDao;
  @Autowired
  private MsgService msgService;
    @Autowired
    private UserService userService;
 
   
  @Transactional(propagation = Propagation.REQUIRED)
  public void saveUser(User user) throws Exception {
    System.out.println(user.toString());
    try {
      userDao.saveUser(user);
      int i = 1/0;
//     saveUser2(user);
    } catch (Exception e) {
//     msgService.saveMsg();
//           this.saveMsg();
      userService.saveMsg();
      throw new RuntimeException();
    }
  }
   
  @Transactional(propagation = Propagation.REQUIRES_NEW)
  public void saveMsg() {
    TbMsg msg = TbMsg.builder().name("xiaocao").msg("xiaoxiao").age(27).build();
    msgDao.saveMsg(msg);
  }
}

單元測試,調用saveUser方法,并沒有達到想要的效果(saveUser異常,SaveMsg隔離級別是REQUIRES_NEW,理論上應該能入庫)。

失敗原因即是上面第一節中說的:同一個service中的方法調用,不會產生新事務。Spring 事務的管理控制,主要是通過AOP的動態代理增強來實現的,目標對象本身并沒有任何的事務管理能力,都是通過代理對象動態增強功能去實現事務管理。在同一個service中的方法調用,相當于是目標對象本身的this調用,并沒有經過代理對象,所以自然的事務配置的嵌套均無效。

解決策略:

1、saveMsg移動到另一個service中,在UserServiceImpl中導入MsgService,saveUser中通過MsgService類去調用。

2、UserServiceImpl中注入自己,通過注入的自身service進行調用。

關于“如何解決Spring事務中傳播行為的問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網頁標題:如何解決Spring事務中傳播行為的問題
網站路徑:http://www.2m8n56k.cn/article16/ijcsdg.html

成都網站建設公司_創新互聯,為您提供Google網站排名軟件開發網站營銷搜索引擎優化全網營銷推廣

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設
主站蜘蛛池模板: 亚洲精品成人a | 一级美国乱色毛片 | 久热精品免费视频 | 欧美性色黄大片一级毛片视频 | 看片亚洲| 456主播喷水在线观看 | 亚洲自偷自偷图片在线高清 | 国产一级做a爱免费观看 | 久久91精品国产91久久跳舞 | 一个人看的日本免费视频 | 亚洲一区日韩一区欧美一区a | 欧美一级在线观看视频 | 九九久久久 | xxx免费视频 | 欧美性色生活片免费播放 | 999国产精品亚洲77777 | 国产三级视频网站 | 国产精品吹潮在线播放 | 亚洲欧美成人影院 | 热er99久久6国产精品免费 | 99久久精品男女性高爱 | 亚洲在线视频网站 | 欧美成亚洲| 国产午夜一级淫片 | 欧美另类视频一区二区三区 | 亚洲自偷自偷图片在线高清 | 步兵一区二区三区在线观看 | 久久精品国产第一区二区 | 亚洲第五色综合网啪啪 | 欧美成人一区二区三区在线视频 | 男女性高清爱潮视频免费观看 | 美女白浆视频 | 久久精品23 | 国产三级做爰在线观看∵ | 男人躁女人躁的好爽免费视频 | 女初高中福利视频在线观看 | 成人做爰视频www视频 | 97公开视频 | 丁香婷婷影音先锋5566 | 欧美自拍在线 | 国产高清视频在线观看 |