大家好,又见面了,我是你们的朋友全栈君。
SpringMVC 工作原理
一、工作原理
Spring的MVC框架主要由DispatcherServlet、映射处理器、处理器(控制器)、视图解析器、视图组成。
简单描述:
- 客户端请求提交到DispatcherServlet
- 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller
- DispatcherServlet将请求提交到Controller
- Controller调用业务逻辑处理后,返回ModelAndView
- DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图,并将结果显示到客户
详细过程:
- 用户发送请求至前端控制器DispatcherServlet;
- DispatcherServlet调用处理器映射器HandlerMappering;
- 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
- DispatcherServlet调用处理器适配器HandlerAdapter。
- 处理器适配器经过适配调用具体的处理器(Controller,也叫后端控制器);
- Controller执行完成返回ModelAndView;
- 处理器适配器将controller执行结果ModelAndView返回给DispatcherServlet;
- DispatcherServlet将ModelAndView传给视图解析器ViewReslover;
- 视图解析器解析后返回具体View;
- DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中),并响应给用户。
二、处理器/组件 的作用
前端控制器DispatcherServlet(也叫中央处理器):作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。
处理器映射器HandlerMappering:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
处理器适配器HandlerAdapter:通过扩展处理器适配器,支持更多类型的处理器。
视图解析器ViewReslover:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。
如果有错误的地方欢迎指出~?
转载请标明:
https://blog.csdn.net/vihem/article/details/120888564
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146551.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...