Spring Web 项目核心配置:web.xml 关键组件解析
在传统的 Spring Web 应用架构中,web.xml 扮演着启动器和路由中枢的角色。虽然现代 Spring Boot 项目倾向于使用注解配置,但在维护旧系统或构建混合架构时,理解这些基础配置依然至关重要。下面梳理了四个最核心的配置项,它们共同决定了容器如何加载上下文以及请求如何被分发。
1. 根上下文加载器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这是 Spring 与 Web 容器整合的第一步。当 Web 容器(如 Tomcat)启动时,ContextLoaderListener 会监听并读取 contextConfigLocation 指定的配置文件。通常这里指向根级的 applicationContext.xml,用于加载非 Web 层的服务 Bean。这样做的目的是将 Spring 容器挂载到整个 Web 应用的上下文中,让后续的业务逻辑能访问到 Spring 管理的资源。
2. 请求上下文监听器
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
如果你需要在 Spring Bean 中直接获取当前的 HTTP 请求对象、Session 甚至全局 Session,这个监听器必不可少。它的作用是让 Spring 容器感知到 Web 容器的生命周期事件。开启后,Spring 才能支持 request、session 和 globalsession 作用域的 Bean 定义,否则在这些作用域下注入依赖可能会失败。
3. Spring MVC 前端控制器
<servlet>
<servlet-name>mvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:mvc-servlet.xml
1
mvc
/

