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:见官方文档。
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进行类型转换);
<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
<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:见官方文档。
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进行类型转换);
<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
相关文章推荐
- AnnotationMethodHandlerAdapter和mvc:annotation-driven对类型转换和HttpMessageConverter的配置
- 使用mvc:annotation-driven的时候,使用不了DefaultAnnotationHandlerMapping的问题,解决办法
- @FeignClient with top level @RequestMapping annotation is also registered as Spring MVC handler
- SpringMVC3 AnnotationMethodHandlerAdapter与mvc:annotation-driven冲突的解决方案
- Spring MVC PageNotFound.noHandlerFound No mapping found for HTTP request with URI
- org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
- 废弃的org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
- Spring 3 MVC No mapping found for HTTP request with URI (转)
- springMVC报WARNING: No mapping found for HTTP request with URI [/springMVC/hello] in DispatcherServle
- springmvc HandlerMapping HandlerAdapter
- java springmvc No mapping found for HTTP request with URI
- 为什么 在springmvc.xml 中 配置了<mvc:default-servlet-handler /> 一定要配置<mvc:annotation-driven >?
- <mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题
- springmvc No mapping found for HTTP request with URI in Dispatc
- No mapping found for HTTP request with URI [/springmvc/queryitems.action] in DispatcherServlet with
- ASP.NET MVC 中如何用自定义 Handler 来处理来自 AJAX 请求的 HttpRequestValidationException 错误
- RequestMappingHandlerAdapter配置
- Spring MVC @RequestMapping Annotation Example with Controller, Methods, Headers, Params, @RequestParam, @PathVariable--转载
- spring RequestMappingHandlerAdapter解析参数绑定到pojo过程