共计 1128 个字符,预计需要花费 3 分钟才能阅读完成。
明天我给大家介绍一下 Spring MVC 的具体执行流程。我把 Spring MVC 的执行流程划分为三个阶段,配置阶段、初始化阶段和运行阶段。
我整顿了一张残缺的执行流程图,须要高清图的小伙伴能够私信我。上面具体介绍每个阶段的执行细节。
1、第一阶段:配置阶段
配置阶段,次要是实现对 xml 配置和注解配置。
具体步骤如下:
首先,从 web.xml 开始,配置 DispatcherServlet 的 url 匹配规定和 Spring 主配置文件的加载门路
而后,就是配置注解,比方 @Controller、@Service、@Autowrited 以及 @RequestMapping 等。
2、第二阶段:初始化阶段
初始化阶段,次要是加载并解析配置信息以及 IoC 容器、DI 操作和 HandlerMapping 的初始化。
具体步骤如下:
首先,Wer 容器启动当前,会由 Web 容器主动调用 DispatcherServlet 的 init()办法。
而后,在 init()办法中,会初始化 IoC 容器,IoC 容器其实就是个 Map。
紧接着,依据配置好的扫描包门路,扫描出相干的类,并利用反射进行实例化,寄存到 IoC 容器中。
缓存之后,Spring 将再次迭代扫描 IoC 容器中的实例,给须要主动赋值的属性主动赋值。哪些属性须要主动赋值呢?比方加了 @Autowrited 的属性。
最初,读取 @RequestMapping 注解,取得申请 url,将 url 和 Method 倡议一对一的映射关系并缓存起来。咱们能够简略粗犷地了解为缓存在一个 Map 中,它的 Key 就是 url,它的值是 Method。
3、第三阶段:运行阶段
运行阶段,在 Spring 启动当前,期待用户申请,实现外部调度并返回响应后果。
具体步骤如下:
用户在浏览器输出 url 之后,Web 容器会接管到用户申请。Web 容器会主动调用 doGet()或者 doPost()办法。从 doGet()或者 doPost()办法中,咱们能够取得两个对象,别离是 request 和 response。通过 request 能够取得用户申请带过去的信息,通过 response 能够往浏览器端输入响应后果。
而后,依据 request 中取得的申请 url,能够从 HandlerMapping 中找到对应 Method。
接着,还是利用反射调用办法,将取得办法调用的返回后果。
最初,将返回后果通过 response 输入到浏览器,用户就能够看到响应后果。
援用
都曾经看到这里了,大家是不是感觉 Spirng MVC 执行流程非常简单?
援用
我是被编程耽搁的文艺 Tom,如果大家还有其余疑难,能够在评论区留言。如果本次面试解析对你有帮忙,请动动手指一键三连分享给更多的人。关注我,面试不再难!
往期视频曾经整顿成文档模式,须要的小伙伴点个关注,点击下方名片!