• 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

  • 相关阅读:
    创业成功关键在于专注“核心竞争力”(外包有时候能大大提高开发周期)
    华为为什么不设事业部制?
    雷军三年花10亿造“芯” 营销还是“不服气”(外界对雷军做芯片的三种猜测,以及雷军本人的看法)
    Windows完成端口与猪肉佬
    分布式锁实现
    Quartz(GUI)图形界面程序----Quartz Web
    Quartz.net开源作业调度
    js 闭包
    Nancy
    MVC—WebAPI(调用、授权)
  • 原文地址:https://www.cnblogs.com/graph/p/8998697.html
Copyright © 2020-2023  润新知