1. 程式人生 > >spring中使用mvc和tx名稱空間的衝突

spring中使用mvc和tx名稱空間的衝突

在學習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

則可以使用,不衝突

截圖如下: