Spring MVC学习笔记

1.Spring MVC流程图

2.注解驱动控制器
请求映射到控制器可以通过URL,请求参数,请求方法,请求头四个方面信息项;

@RequestMapping支持Ant风格(?,*)和{XX}占位符的URL;
请求方法参数:@RequstParam,@CookieValue,@RequetHeader,Servlet API对象:HttpServletRequet,HttpServletResponse,I/O对象:OutputStream,以及java.util.Locale,java.security.Principal;

使用HttpMessageConverter<T>:DispatchServlet默认已经安装了RequestMappingHandlerAdapter作为HandlerAdapter的组件实现类,HttpMessageConverter即有RequestMappingHandlerAdapter使用,将请求信息转换为对象,或将对象转换为相应信息;

处理模型的数据:ModelAndView,@ModelAttribute,Map或Model,@SessionAttribute;
SpringMVC在调用方法前会创建一个隐藏的模型对象,如果处理方法的入参为Map或Model类型,则SpringMVC会将隐含模型的引用传递给这些参数,同时也可以添加新的属性数据;

3.处理方法的数据绑定
SpringMVC根据请求方法签名不同,将请求参数中的信息以一定的方式转换并绑定到请求方法的入参中,并进行数据转换,数据格式化,数据校验等;
3.1 流程解析

3.2 ConversionService
ConversionService是Spring类型转换体系的核心接口,位于org.springframework.core.convert包中,也是该包中唯一个接口。主要定义了四个方法:

使用FactoryBean产生;