文章目录
一、Spring MVC
1.Spring的运行原理
- 具体流程
- 用户发起请求request到前端控制器DispatherServlet
- 前端控制器请求处理映射器HandlerMapping查找Handler可以根据注解,XML进行查找
- 处理映射器向前端控制器返回映射链HandlerExceutionChain对象,包含一个Handler处理器对象,多个HandlerInterception拦截器的对象
- 前端控制器请求处理器适配器HandlerAdapter请求执行Handler
- 处理器适配器执行Handler
- 处理器执行完返回给适配器ModelAndView对象ModelAndView是SpringMVC一个底层的对象,包含View和Model,Model部分是业务对象返回的模型数据,View部分为逻辑视图名
- 处理器适配器返回给前端控制器ModelAndView对象(包含模型数据,逻辑视图名)
- 前端控制器请求视图解析器ViewResolver解析视图,视图解析器将逻辑视图名解析为具体的View(jsp…)
- 视图解析器向前端控制器返回view
- 前端控制器进行视图渲染,视图渲染将模型数据(ModelAndView对象)填充到request域
- 前端控制器向用户响应结果
二、Spring MVC组件
1. 前端控制器(DispatchServlet)
- 无需开发,由Spring框架提供
- SpringMVC的入口函数,接收请求,响应请求,相当于转发器,有了DispatchServlet减少其他组件之间的耦合度,用户请求到达前端控制器,相当于MVC中的Controller,是整个流程控制的中心,由它调用其他组件处理用户请求,降低组件间的耦合度。
2.处理器映射器(HandlerMapping)
- 不需要开发,由框架提供
- 根据URL查找Handler,HandlerMapping负责根据用户请求找到Handler处理器(Controller),SpringMVC中提供了不同的映射器实现的映射方式,如:配置文件方式,实现接口方式,注解方式
3.处理器适配器(HandlerAdapter)
- 不需要开发,由框架提供
- 按照特定规则(HandlerAdapter要求的规则)去执行Handler通过HandlerAdapter对处理器进行执行,是适配器模式的应用,通过扩展适配器可以对更多的类型的处理器进行执行。
4.处理器(Handler)
- 需要开发人员开发
- 真正执行Handler的是处理器,处理器是对具体的用户请求进行处理,由于Handler涉及到具体的用户业务请求,所以一般情况下是需要开发人员根据业务需求开发的Handler
5.视图解析器(ViewResolver)
- 不需要开发,由框架提供
- 进行试图解析,根据逻辑视图名解析成真正的视图View,vie