springmvc-servlet.xml配置
阿新 • • 發佈:2022-04-12
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!---------------------springMVC配置-----------------------------------------------> <!--靜態資源過濾 mvc預設處理對映器HandlerMapping&處理器介面卡HandlerAdapter tomcat容器的web.xml中有一個defaultServlet(用於處理靜態資源), 對映路徑是"/",我們自定義的web.xml最終相當於會與容器的web.xml合併, 而自定義DispatchServlet一般也是使用"/",導致容器中的defaultServlet被覆蓋, 從而靜態資源請求也會被髮送到springmvc,springmvc會去找這個路徑的對映器 (相當於對應的Controller,這是找不到的),配置這個<mvc:default-servlet-handler>, 應該就是在SpringMvc找不到對映路徑後,再將其轉給tomcat的defaultServlet, 這是就可以tomcat就可以正確解析靜態資源路徑。--> <mvc:default-servlet-handler/> <!--允許註解配置controller--> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"> <property name="failOnEmptyBeans" value="false"/> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> <!--檢視解析器ViewResolver 接受DispatcherServlet給他的ModelAndView 並根據其中的ViewName拼接出View地址--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver"> <!--字首--> <property name="prefix" value="/WEB-INF/jsp/"/> <!--字尾--> <property name="suffix" value=".jsp"/> </bean> <!---------------------使用註解配置bean並配置掃描範圍-----------------------------------------------> <!--pojo--> <context:component-scan base-package="com.kg.pojo"/> <!--mapper--> <context:component-scan base-package="com.kg.mapper"/> <bean id="bookMapperImpl" class="com.kg.mapper.bookMapperImpl"> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <!--service--> <context:component-scan base-package="com.kg.service"/> <!--controller--> <context:component-scan base-package="com.kg.controller"/> <!---------------------以下配置可使用default-servlet-handler代替-----------------------------------------------> <!--處理對映器HandlerMapping 接受DispatcherServlet給他的地址資訊id="/hello" 並通過HandlerExecution類去執行獲得handler的類名即class="com.kg.controller.helloSpringMvcController" 將資訊返回給DispatcherServlet --> <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>--> <!--處理器介面卡HandlerAdapter 接受上面的class資訊尋找這個目標類並處理其中方法 目標類將結果(model and view & viewName地址)返回給本類 本類返回給DispatcherServlet--> <!-- <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>--> </beans>