mvc:annotation-driven 元素,HttpMessageConverter,RequestMappingHandlerAdapter




1.1 上面的简单的声明代码,就已经默认注册了一个RequestMappingHandlerMapping、一个RequestMappingHandlerAdapter,以及一个ExceptionHandlerExceptionResolver,以支持对使用了@RequestMapping、@ExceptionHandler 及其他注解的控制器方法的请

求处理。同时,上面的代码还启用了以下的特性:见官方文档。

1.2 举个小例子,直接不用驱动注解:http://blog.csdn.net/xiejx618/article/details/11383249 同时包含jsonp的解决,我前面也有文章提到。

1.3 在驱动注解基础上配置:http://www.cnblogs.com/yangzhilong/p/3725849.html   

       Spring MVC 学习笔记 十五 what's new in spring mvc 3.1 mvc annotation-driven 新增标签  http://starscream.iteye.com/blog/1098880


1.3 使用 MVC 命名空间时,也会进行同样的默认配置。要注册定制/自定义的格式化器和转换器,只需要提供一个转换服务ConversionService:见官方文档。


2 https://my.oschina.net/lichhao/blog/172562  SpringMVC源码剖析(五)-消息转换器HttpMessageConverter

在SpringMVC进入readString方法前,会根据@RequestBody注解选择适当的HttpMessageConverter实现类来将请求参数解析到string变量中。(如果有自定义转换是否用自定义的 1.3 ConversionService )

------------------------------------------------

1 http://jinnianshilongnian.iteye.com/blog/1682510
Spring3.1使用新的HandlerMapping 和 HandlerAdapter来支持@Contoller和@RequestMapping
注解处理器。
新的@Contoller和@RequestMapping注解支持类:处理器映射RequestMappingHandlerMapping
和处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5开始的处理器映射DefaultAnnotationHandlerMapping和处理器适配器
AnnotationMethodHandlerAdapter,
提供更多的扩展点。


2 http://jinnianshilongnian.iteye.com/blog/1594806
2.7、Spring3.1新特性 
@RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);
@ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);



 
      自动注册基于注解风格的处理器需要的DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter
      支持Spring3的ConversionService自动注册
      支持JSR-303验证框架的自动探测并注册(只需把JSR-303实现放置到classpath)
      自动注册相应的HttpMessageConverter(用于支持@RequestBody  和 @ResponseBody)(如XML输入输出转换器(只需将JAXP实现放置到classpath)、JSON输入输出转换器(只需将Jackson实现放置到classpath))等。


    :注册自定义的处理器拦截器;
    :和ParameterizableViewController类似,收到相应请求后直接选择相应的视图;
    :逻辑静态资源路径到物理静态资源路径的支持;
    :当在web.xml 中DispatcherServlet使用/ 映射时,能映射静态资源(当Spring Web MVC框架没有处理请求对应的控制器时(如一些静态资源),转交给
默认的Servlet来响应静态文件,否则报404找不到资源错误,)。


http://jinnianshilongnian.iteye.com/blog/2107205
7、Gson HttpMessageConverter
     
        

            

        

    



http://jinnianshilongnian.iteye.com/blog/1717180
我们都知道struts2默认就是这种方案,这是因为struts2采用了OGNL,并通过栈(根对象)进行操作的,而且栈中默认有action实例,所以很自然的没有这种问题。
springmvc不同,没有根对象的概念,而且本身很难来解决这个问题,因此大家在使用时最好避免这种方式或者使用类似于struts1的FormBean组合对象来解决。


https://my.oschina.net/lichhao/blog/172562
SpringMVC源码剖析(五)-消息转换器HttpMessageConverter


你可能感兴趣的:(java·未分类)