spring加載的問題致使事務@transcational配置無效

項目中的註解式事務配置不生效,在spring-mybatis文件中事務都已經配置好了可是就是不生效,最後發現是事務的加載順序沒有處理好,緣由以下:web

因爲採用的是SpringMVC、 MyBatis,故統一採用了標註來聲,明Service、Controller 
因爲服務器啓動時的加載配置文件的順序爲web.xml---spring-mybatis.xml(Spring的配置文件)---servlet-mvc.xml(SpringMVC的配置文件),因爲root-context.xml配置文件中Controller會先進行掃描裝配,可是此時service尚未進行事務加強處理,獲得的將是原樣的Service(沒有通過事務增強處理,故而沒有事務處理能力),因此咱們必須在root-context.xml中不掃描Controllerspring

//spring-mybatis文件
<!-- 自動掃描組件,這裏要把controler下面的 controller去除,他們是在spring3-servlet.xml中配置的,若是不去除會影響事務管理的。   -->  
 <context:component-scan base-package="com.sence">  
      <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />   
 </context:component-scan>  


//spring-mvc.xml文件
<!-- 掃描全部的controller 可是不掃描service-->  
<context:component-scan base-package="com.sence">  
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />  
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />  
</context:component-scan>
相關文章
相關標籤/搜索