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

  • 相关阅读:
    win 程序开机自启动设置
    火柴:电脑效率工具
    全新思维导图 XMind ZEN v10.0.0 中文破解版
    Linux 上 10 个最好的 Markdown 编辑器
    iobit-unlocker --- 类似 Unlocker 工具,强制删除文件或文件夹
    EV录屏 --- 免费无水印,集视频录制与直播功能于一身的桌面录屏软件, 支持录屏涂鸦、实时按键显示、视频体积压缩等实用功能
    办公书籍推荐
    喝水计算器
    Linux find命令忽略目录的查找方法
    重装系统之前需要做的checklist
  • 原文地址:https://www.cnblogs.com/graph/p/8998697.html
Copyright © 2011-2022 走看看