SpringMVC的执行流程

过去的开发中,视图阶段(老旧JSP等)

1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心)

2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping

3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注解配置,生成处理器对象及处理器拦截器(如果有),再将处理器执行链返回给DispatcherServlet.

4.前端控制器DispatcherServlet调用处理器适配器HandlerAdapter.

5.处理器适配器HandlerAdapter经过适配调用具体的处理器Handler/Controller.

6.处理器Handler/Controller执行完成返回ModelAndView对象给处理器适配器HandlerAdapter.

7.处理器适配器HandlerAdapter将处理器Handler/Controller的执行结果ModelAndView返回给前端控制器DispatcherServlet.

8.前端控制器DispatcherServlet将ModelAndView传给视图解析器ViewReslover.

9.视图解析器ViewReslover解析后返回具体View视图.

10.前端控制器DispatcherServlet根据View进行渲染视图,即将模型数据填充至视图中

理解记忆思路:主要要弄清前端控制器带来的三个组件处理器映射器、处理器适配器与视图解析器分别是干什么用的,处理器映射器是个map集合可通过key值参数访问路径去寻找value参数访问对应的方法是哪个方法,由于可能会有拦截器存在所以要将方法与拦截器一起封装打包成处理器执行链返回。前端控制器为调度中心三个组件都是由调度中心来调度的彼此之间无直接联系。接收参数时参数的形式类型并不是统一的,为方便接收需要参数类型转换器,返回参数也一样形式多种类型多样需要转换处理,这就是处理器适配器的作用。视图解析器的作用就是将逻辑视图解析为真正的视图。

当然现在的开发,基本都是前后端分离的开发,并没有视图这些,一般都是handler中使用Response直接结果返回.

1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心)

2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping

3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注解配置,生成处理器对象及处理器拦截器(如果有),再将处理器执行链返回给DispatcherServlet.

4.前端控制器DispatcherServlet调用处理器适配器HandlerAdapter.

5.处理器适配器HandlerAdapter经过适配调用具体的处理器Handler/Controller.

6.方法上添加了@ResponseBody

7.通过HttpMessageConverter来返回结果转换为JSON并响应.

相关推荐
有梦想的攻城狮2 小时前
spring中的ApplicationRunner接口详解
java·后端·spring·runner·application
苇柠6 小时前
Spring框架基础(1)
java·后端·spring
ysy16480672398 小时前
Spring、Spring MVC、MyBatis 和 Spring Boot的关系
spring·mvc·mybatis
白露与泡影14 小时前
彻底解决SpringCloud TCP连接过多未释放问题~
tcp/ip·spring·spring cloud
千睢15 小时前
SpringAOP
java·开发语言·spring
励志成为糕手16 小时前
Spring AOP动态代理核心原理深度解析 - 图解+实战揭秘Java代理设计模式
java·开发语言·spring
用户5903363605916 小时前
方法注入
java·spring
sniper_fandc16 小时前
Spring Cloud系列—LoadBalance负载均衡
后端·spring·spring cloud
右手嘚温暖1 天前
分布式事务Seata、LCN的原理深度剖析
spring boot·分布式·后端·spring·spring cloud·中间件·架构
麦兜*1 天前
Spring Boot集成方案 + Elasticsearch向量检索,语义搜索核弹
java·spring boot·python·spring·elasticsearch·spring cloud·系统架构