组件解析
SpringMVC
底层的组件是如何进行实现的,我们需要对组件进行解析
在SpringMVC
框架的内部,很多功能都由对应的组件帮助我们去完成(组件间分工明确)
SpringMVC
的执行流程图:
- 用户发送请求至前端控制器
DispatcherServlet
(该前端控制器主要负责调度,进行相应的组件调用) DispatcherServlet
收到请求调用HandlerMapping
处理器映射器(该组件用于找资源,解析资源,对请求进行解析,最终具体找哪个,返回处理器执行链,返回的是一串资源的地址,内部封装了具体资源执行的顺序)- 处理器映射器找到具体的处理器(可以根据
xml
配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
DispatcherServlet
调用HandlerAdapter
处理器适配器(前端控制器拿到返回的处理器执行链后,调用处理器适配器,让其处理调用哪些要被执行的资源)HandlerAdapter
经过适配器调用具体的处理器(Controller
,也叫后端控制器,一般是我们自己写的资源封装的对象)Controller
执行完返回ModelAndView
(模型和视图对象)HandlerAdapter
(处理器适配器)将controller
执行结果ModelAndView
返回给DispatcherServlet
(前端控制器)DispatcherServlet
将ModelAndView
传给ViewReslover
视图解析器(从ModelAndView
中将视图View
对象解析出来)ViewReslover
解析后返回具体的View
DispatcherServlet
根据View
进行渲染视图(即将模型数据填充至视图中),DispatcherServlet
响应用户