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

如何解決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://m.2m8n56k.cn/article16/ijcsdg.html

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

廣告

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

成都網站建設
主站蜘蛛池模板: 亚洲精品视频免费 | 久久久全国免费视频 | 国产精品久久久久久久专区 | 国产大陆亚洲精品国产 | 特级毛片www欧美 | 国产特级全黄一级毛片不卡 | 中文字幕日韩精品有码视频 | 亚洲国产一区二区a毛片日本 | 欧美一级日韩在线观看 | 亚洲欧美国产日韩天堂在线视 | 国产精品视频男人的天堂 | 亚洲精品精品一区 | 久久精品免费观看 | 久久久国产成人精品 | 欧美精品亚洲精品日韩 | 亚洲免费专区 | 日本免费在线 | 浮力影院网站午夜 | 欧美一级在线 | 美女扒开腿让男人桶 | 久久久久久毛片免费播放 | 亚洲欧美日本综合 | 亚洲精品久久一区二区无卡 | 亚洲国产情侣一区二区三区 | 亚洲免费成人 | 在线视频久 | 看片免费黄 | 国产美女作爱 | 久久久久国产免费 | 日韩一级在线视频 | 久久精品中文字幕免费 | 久久综合精品不卡一区二区 | 草视频在线观看 | 91香蕉国产亚洲一区二区三区 | 亚洲女精品一区二区三区 | 色香欲综合成人免费视频 | 国产乱子精品免费视观看片 | 久草久草视频 | 日韩欧美一级毛片视频免费 | 亚洲国产一区二区在线 | 91香蕉成人免费高清网站 |