spring mvc 解析

 

spring mvc 几种handlerMapper处理请求到具体Handler,返回是HandlerExecutionChain,包括handler和拦截器数组:

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

主要针对@RequestMapper 注解进行拦截请求,返回的handler 是HandlerMethod

org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

url匹配拦截返回HttpRequestHandler对象HttpRequestHandler

org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping

beanName匹配拦截返回Controller

2:handlerAdapter

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter

3:当调用目标对象方法时会先封装方法参数,会根据方法参数获得一个HandlerMethodArgumentResolver,

这个类根据请求参数封装方法参数。普通参数解析由ServletModelAttributeMethodProcessor负责参数绑定,

如果方法参数前面加了@RequestBody 注解者有RequestResponseBodyMethodProcessor来解析,并且请求参数转化由HttpMessageConverter实现,比如json格式转化的MappingJacksonHttpMessageConverter,

猜你喜欢

转载自xuyunti.iteye.com/blog/2237271