您的位置:首页 > 理论基础 > 计算机网络

mvc:annotation-driven 元素,HttpMessageConverter,RequestMappingHandlerAdapter

2017-02-28 23:57 603 查看
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/springbeans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/springmvc.xsd">
<mvc:annotation-driven/>
</beans>
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 命名空间时,<mvc:annotation-driven>也会进行同样的默认配置。要注册定制/自定义的格式化器和转换器,只需要提供一个转换服务ConversionService:见官方文档。

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进行类型转换);


 <mvc:annotation-driven>:

      自动注册基于注解风格的处理器需要的DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter

      支持Spring3的ConversionService自动注册

      支持JSR-303验证框架的自动探测并注册(只需把JSR-303实现放置到classpath)

      自动注册相应的HttpMessageConverter(用于支持@RequestBody  和 @ResponseBody)(如XML输入输出转换器(只需将JAXP实现放置到classpath)、JSON输入输出转换器(只需将Jackson实现放置到classpath))等。

    <mvc:interceptors>:注册自定义的处理器拦截器;

    <mvc:view-controller>:和ParameterizableViewController类似,收到相应请求后直接选择相应的视图;

    <mvc:resources>:逻辑静态资源路径到物理静态资源路径的支持;

    <mvc:default-servlet-handler>:当在web.xml 中DispatcherServlet使用<url-pattern>/</url-pattern> 映射时,能映射静态资源(当Spring Web MVC框架没有处理请求对应的控制器时(如一些静态资源),转交给

默认的Servlet来响应静态文件,否则报404找不到资源错误,)。
http://jinnianshilongnian.iteye.com/blog/2107205
7、Gson HttpMessageConverter

     <mvc:annotation-driven>

        

<mvc:message-converters>

            

<bean class="org.springframework.http.converter.json.GsonHttpMessageConverter"/>

        

</mvc:message-converters>

    

</mvc:annotation-driven>
http://jinnianshilongnian.iteye.com/blog/1717180
我们都知道struts2默认就是这种方案,这是因为struts2采用了OGNL,并通过栈(根对象)进行操作的,而且栈中默认有action实例,所以很自然的没有这种问题。

springmvc不同,没有根对象的概念,而且本身很难来解决这个问题,因此大家在使用时最好避免这种方式或者使用类似于struts1的FormBean组合对象来解决。
https://my.oschina.net/lichhao/blog/172562
SpringMVC源码剖析(五)-消息转换器HttpMessageConverter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐