spring MVC

若是不配置其餘參數,大體至關於如下的配置文件(參考自org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser) 
<!-- 配置路徑擴展名映射的媒體類型 -->  
    <bean name="pathExtensionContentNegotiationStrategy"  
        class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">  
        <constructor-arg>  
            <props>  
                <!-- if romePresent -->  
                <prop key="atom">application/atom+xml</prop>  
                <prop key="rss">application/rss+xml</prop>  
                <!-- endif -->  
                <!-- if jackson2Present || jacksonPresent -->  
                <prop key="json">application/json</prop>  
                <!-- endif -->  
                <!-- if jaxb2Present -->  
                <prop key="xml">application/xml</prop>  
                <!-- endif -->  
            </props>  
        </constructor-arg>  
    </bean>  
  
    <!-- 配置映射媒體類型的策略 -->  
    <bean name="mvcContentNegotiationManager"  
        class="org.springframework.web.accept.ContentNegotiationManager">  
        <constructor-arg>  
            <list>  
                <ref bean="pathExtensionContentNegotiationStrategy" />  
            </list>  
        </constructor-arg>  
    </bean>  
  
    <!-- 配置方法級別的@RequestMapping處理器 -->  
    <bean name="requestMappingHandlerMapping"  
        class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">  
        <property name="order" value="0" />  
        <property name="contentNegotiationManager" ref="mvcContentNegotiationManager" />  
    </bean>  
  
    <!-- 配置數據轉換服務,默認使用格式化數據轉換服務,能夠對日期和數字進行格式化 -->  
    <bean name="conversionService"  
        class="org.springframework.format.support.DefaultFormattingConversionService">  
        <constructor-arg index="0">  
            <null></null>  
        </constructor-arg>  
        <constructor-arg index="1">  
            <value>true</value>  
        </constructor-arg>  
    </bean>  
  
    <bean name="validator"  
        class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"></bean>  
  
    <!-- 配置數據綁定,經過轉換服務實現綁定,若是包含jsr303實現還將進行校驗 -->  
    <bean name="webBindingInitializer"  
        class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">  
        <property name="conversionService" ref="conversionService" />  
        <!-- if jsr303Present -->  
        <property name="validator" ref="validator" />  
        <!-- endif -->  
    </bean>  
  
    <bean name="byteArrayHttpMessageConverter"  
        class="org.springframework.http.converter.ByteArrayHttpMessageConverter"></bean>  
    <bean name="stringHttpMessageConverter"  
        class="org.springframework.http.converter.StringHttpMessageConverter">  
        <property name="writeAcceptCharset" value="false" />  
    </bean>  
    <bean name="resourceHttpMessageConverter"  
        class="org.springframework.http.converter.ResourceHttpMessageConverter"></bean>  
    <bean name="sourceHttpMessageConverter"  
        class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean>  
    <bean name="allEncompassingFormHttpMessageConverter"  
        class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter"></bean>  
    <bean name="atomFeedHttpMessageConverter"  
        class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter"></bean>  
    <bean name="rssChannelHttpMessageConverter"  
        class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter"></bean>  
    <bean name="jaxb2RootElementHttpMessageConverter"  
        class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"></bean>  
    <bean name="mappingJackson2HttpMessageConverter"  
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>  
    <bean name="mappingJacksonHttpMessageConverter"  
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>  
  
    <!-- 配置@RequestBody,@ResponseBody註解可用的轉換器 -->  
    <util:list id="messageConverters"  
        list-class="org.springframework.beans.factory.support.ManagedList.ManagedList">  
        <ref bean="byteArrayHttpMessageConverter" />  
        <ref bean="stringHttpMessageConverter" />  
        <ref bean="resourceHttpMessageConverter" />  
        <ref bean="sourceHttpMessageConverter" />  
        <ref bean="allEncompassingFormHttpMessageConverter" />  
        <!-- if romePresent -->  
        <ref bean="atomFeedHttpMessageConverter" />  
        <ref bean="rssChannelHttpMessageConverter" />  
        <!-- endif -->  
        <!-- if jaxb2Present -->  
        <ref bean="jaxb2RootElementHttpMessageConverter" />  
        <!-- endif -->  
        <!-- if jackson2Present -->  
        <ref bean="mappingJackson2HttpMessageConverter" />  
        <!-- endif -->  
        <!-- if jacksonPresent -->  
        <ref bean="mappingJacksonHttpMessageConverter" />  
        <!-- endif -->  
    </util:list>  
  
    <!-- 將任意類型的Controller適配爲Handler -->  
    <bean name="requestMappingHandlerAdapter"  
        class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">  
        <property name="contentNegotiationManager" ref="mvcContentNegotiationManager" />  
        <property name="webBindingInitializer" ref="webBindingInitializer" />  
        <property name="messageConverters" ref="messageConverters" />  
    </bean>  
  
    <!-- 這個攔截器暴露轉換器服務讓spring:bind和spring:eval標籤可用 -->  
    <bean name="csInterceptor"  
        class="org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor">  
        <constructor-arg index="0">  
            <ref bean="conversionService" />  
        </constructor-arg>  
    </bean>  
  
    <!-- 如今全部攔截器都必須設定響應的路徑映射 -->  
    <bean name="mappedCsInterceptor"  
        class="org.springframework.web.servlet.handler.MappedInterceptor">  
        <constructor-arg index="0">  
            <null></null>  
        </constructor-arg>  
        <constructor-arg index="1">  
            <ref bean="csInterceptor" />  
        </constructor-arg>  
    </bean>  
  
    <!-- 使用@ExceptionHandler註解的方法來處理Exception,優先級爲0(最高) -->  
    <bean name="exceptionHandlerExceptionResolver"  
        class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver">  
        <property name="contentNegotiationManager" ref="mvcContentNegotiationManager" />  
        <property name="messageConverters" ref="messageConverters" />  
        <property name="order" value="0" />  
    </bean>  
  
    <!-- 若是拋出的Exception類帶有@ResponseStatus註解,響應返回該註解的Http狀態碼,優先級爲1 -->  
    <bean name="responseStatusExceptionResolver"  
        class="org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver">  
        <property name="order" value="1" />  
    </bean>  
  
    <!-- SpringMvc內部異常處理 -->  
    <bean name="defaultExceptionResolver"  
        class="org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver">  
        <property name="order" value="2" />  
    </bean>  
相關文章
相關標籤/搜索