spring中使用mvc和tx名稱空間的衝突
阿新 • • 發佈:2019-02-16
在學習ssm框架整合的過程中,發現如果在springmvc.xml配置檔案中,使用<mvc:annotation-driven/>來進行 controller介面卡和管理器的配置時,
雖然會自動 配置RequestMappingHandlerMapping和RequestMappingHandlerAdapter,不用使用 bean配置,
但是也會自動引入 .../schema/cache 的名稱空間,這個約束會將 <tx:...>約束給替換掉,在啟動時出現 cacheManager找不到或是未定義的異常;
解決方案:1:拋棄<mvc:annotation-driven/>,只使用:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
來進行配置,但是會失去 <mvc:annotation-driven/>帶來的許多引數繫結的益處;2:將自動引入的 xml約束和名稱空間進行修改(在不需要mvc的cache,快取的條件下,將schema/cache進行修改),修改為:
xmlns:mvc="http://www.springframework.org/schema/mvc"
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
則可以使用,不衝突
截圖如下: