zoukankan      html  css  js  c++  java
  • springmvc配置之mvc:annotation-driven

    为了简化springmvc配置,spring同时引入了mvc namespace, 配置了

    <mvc:annotation-driven/>
    

    spring会默认注册a RequestMappingHandlerMapping, a RequestMappingHandlerAdapter, and an ExceptionHandlerExceptionResolver 三个bean, 来支持使用注解(@RequestMapping、@ExceptionHandler、@Controller等)修饰的controller处理请求。同时还有以下一些特性:

    1、 Spring 3 style type conversion through a ConversionService instance in addition to the JavaBeans PropertyEditors used for Data Binding.
    2、 Support for formatting Number fields using the @NumberFormat annotation through the ConversionService.
    3、 Support for formatting Date, Calendar, Long, and Joda-Time fields using the @DateTimeFormat annotation.
    4、 Support for validating @Controller inputs with @Valid, if a JSR-303 Provider is present on the classpath.
    5、 HttpMessageConverter support for @RequestBody method parameters and @ResponseBody method return values from @RequestMapping or @ExceptionHandler methods.This is the complete list of HttpMessageConverters set up by mvc:annotation-driven:

         a.   ByteArrayHttpMessageConverter converts byte arrays.
         b.  StringHttpMessageConverter converts strings.
         c.  ResourceHttpMessageConverter converts to/from org.springframework.core.io.Resource for all media types.
         d.   SourceHttpMessageConverter converts to/from a javax.xml.transform.Source.
         e.  FormHttpMessageConverter converts form data to/from a MultiValueMap<String, String>.
         f.  Jaxb2RootElementHttpMessageConverter converts Java objects to/from XML — added if JAXB2 is present and Jackson 2 XML extension is not present on the classpath.
         g.  MappingJackson2HttpMessageConverter converts to/from JSON — added if Jackson 2 is present on the classpath.
         h.  MappingJackson2XmlHttpMessageConverter converts to/from XML — added if Jackson 2 XML extension is present on the classpath.
         i.  AtomFeedHttpMessageConverter converts Atom feeds — added if Rome is present on the classpath.
         j.  RssChannelHttpMessageConverter converts RSS feeds — added if Rome is present on the classpath.
    

    配置示例:

     <bean name="fastJson" class="com.alibaba.fastjson.support.config.FastJsonConfig">
            <property name="features">
                <list>
                    <value>AllowSingleQuotes</value>
                </list>
            </property>
            <property name="serializerFeatures">
                <list>
                    <value>QuoteFieldNames</value>
                    <value>WriteEnumUsingToString</value>
                    <value>WriteEnumUsingName</value>
                    <value>WriteNullNumberAsZero</value>
                    <value>SkipTransientField</value>
                    <value>WriteDateUseDateFormat</value>
                </list>
            </property>
        </bean>
    
        <!--默认的mvc注解映射的支持 -->
        <mvc:annotation-driven>
            <mvc:message-converters>
                <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>application/json;charset=UTF-8</value>
                            <value>text/html;charset=UTF-8</value>
                            <value>text/json;charset=UTF-8</value>
                        </list>
                    </property>
                    <property name="fastJsonConfig" ref="fastJson"/>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>
    
    

    引用:
    1、 springdoc
    2、what's annotation-driven do

  • 相关阅读:
    数据库特性之原子性和一致性
    [linux] 输出重定向与后台运行
    shell编程其实真的很简单(一)
    Java8中的流操作-基本使用&性能测试
    Hadoop到底是干什么用的?
    为什么要有文件系统?文件系统都有哪些种类?
    MySQL insert value与values
    MySQL create语句
    fiddler抓包-简单易操作(二)
    jmeter文件目录说明(一)
  • 原文地址:https://www.cnblogs.com/graph/p/8998697.html
Copyright © 2011-2022 走看看