SpringMvc运行原理
SpringMvc运行原理,总结一下便于后续回顾学习。
- 客户端发出请求到DispatchServlet(中央处理器);
- 由DispatchServlet控制器查询到一个或多个HandlerMapping(处理器映射器)(注1),通过请求HandlerMapping获取Handler(Controllet)(注2);
- 向DispatchServlet控制器返回映射到的Handler(Controller);
- 由DispatchServlet控制器请求HandlerAdapter(处理器适配器),准备执行对应的Handler;
- 通过HandlerAdapter(处理器适配器)执行对应的Handler;
- 向HandlerAdapter(处理器适配器)返回Handler执行结果ModelAndView;
- 由HandlerApadter(处理器适配器)向DispatchServlet控制器返回ModelAndView;
- 由DispatchServlet控制器通过视图名称找到ModelAndView指定的视图(注3);
- 向DispatchServlet控制器返回真正的视图对象;
- 由DispatchServlet控制器对返回的视图对象进行渲染;
- 向DisparchServlet控制器返回渲染后的视图;
- 向客户端响应请求。
注1:
HandlerMapping(处理器映射器)一共有四种映射方式:
- controller的name映射寻找;
- URL映射来寻找(推荐使用);
- controller的类名映射寻找;
- 使用注解的映射方式寻找。
注2:
在DispatchServlet(中央控制器)加载时,会对HandlerMapping初始化。
注3:
这里的视图只是视图名称,不是真正的视图。