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

  • 相关阅读:
    深度学习 框架比较
    深度学习 Fine-tune 技巧总结
    基于Spark环境对比Python和Scala语言利弊
    【Python系列】HDF5文件介绍
    【Git】CentOS7 通过源码安装Git
    【Git】Git工具常用命令
    登录自动跳转
    offset,scroll,client系列
    谷歌浏览器input中的text 和 button 水平对齐的问题
    git 的基本使用
  • 原文地址:https://www.cnblogs.com/graph/p/8998697.html
Copyright © 2011-2022 走看看