1. 程式人生 > >Spring整合SpringMvc時事務失效

Spring整合SpringMvc時事務失效

最近在做一個新專案是剛搭建的框架(springMVC+spring+hibernate),然後在呼叫自己介面的時候發現一個問題事務失效了,資料並沒有提交到資料庫中去,然後就開始檢視spring中事務配置的部分我是這麼配置的
這裡寫圖片描述
找了半天沒有發現配置有什麼問題,然後就去網上搜索這到底是什麼問題,後來找資料發現其實Spring和SpringMVC倆個容器為父子關係,Spring為父容器,而SpringMVC為子容器。也就是說application.xml中應該負責掃描除@Controller的註解如@Service,而SpringMVC的配置檔案應該只負責掃描@Controller,否則會產生重複掃描導致Spring容器中配置的事務失效。
也就是說spring先掃描要新增事務的包或者類然後再由springMVC掃描的話加上的事務就會失效.
解決方法就是在掃描配置中加上過濾就是這種
這裡寫圖片描述

這裡寫圖片描述
在spring配置檔案中用過濾器排除掃描加過@Controller的類然後springMVC配置檔案中只掃描帶@Controller的類排除@Service註解的類.
最後測試一下問題解決!