扫码阅读
手机扫码阅读

SpringMVC 初始化流程分析

88 2024-11-06

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:SpringMVC 初始化流程分析
文章来源:
江南一点雨
扫码关注公众号
文章摘要

SpringMVC 初始化流程分析

本文由松哥原创,旨在分析 SpringMVC 的初始化流程。文章主要讲解了 HttpServletBean、FrameworkServlet 以及 DispatcherServlet 三个类的初始化工作。

1. HttpServletBean

HttpServletBean 负责加载 Servlet 配置的属性到 Servlet 实例中,并提供子类增加 requiredProperties 的能力。它通过覆盖的 init 方法,使用 BeanWrapper 类操作对象属性,从而完成 Servlet 的初始化。该类不依赖于 Spring 容器。

2. FrameworkServlet

FrameworkServlet 通过 initServletBean 方法初始化。该方法中核心为 initWebApplicationContext 初始化 WebApplicationContext,其过程包括直接赋值、ServletContext 查找以及 createWebApplicationContext 创建。此外,该方法会添加监听器以接收 ContextRefreshedEvent 事件,当事件触发时,会调用 onRefresh 方法。

3. DispatcherServlet

DispatcherServlet 通过重写了父类的 onRefresh 方法,调用 initStrategies 方法来初始化九个组件,其中 initViewResolvers 方法代表初始化流程。这些组件包括视图解析器、多部分解析器等。视图解析器可以通过类型查找或 id 查找,若未找到则使用默认的视图解析器。多部分解析器则只根据 id 进行查找。

4. 小结

SpringMVC 初始化流程涉及三个主要类,分别完成 Servlet 属性加载、WebApplicationContext 初始化和 SpringMVC 组件初始化。这只是请求处理流程的开始,详细的请求处理流程将在后续文章中介绍。

想要了解更多内容?

查看原文:SpringMVC 初始化流程分析
文章来源:
江南一点雨
扫码关注公众号