Spring MVC是Java生态中广泛使用的Web开发框架,基于MVC设计模式实现了请求分发、业务逻辑处理和视图渲染的解耦,很多企业级JavaWeb项目都选择它作为基础框架。搭建Spring MVC开发环境是入门JavaWeb开发的第一步,整个过程需要协调JDK、Servlet容器、构建工具和框架依赖多个部分,任何一个环节配置出错都可能导致项目无法正常运行。

搭建前的环境准备
在正式开始配置Spring MVC环境之前,需要先准备好基础的开发和运行环境。首先是JDK的安装,Spring MVC对JDK版本有明确要求,目前主流的Spring 5.x版本需要JDK 8及以上,建议安装JDK 11或者JDK 17这类长期支持版本,安装完成后需要配置好JAVA_HOME环境变量,确保命令行输入java -version能正确输出JDK版本信息。其次是Servlet容器的准备,Spring MVC项目需要运行在支持Servlet规范的容器中,Tomcat是最常用的选择,下载对应版本的Tomcat解压到本地即可,注意Tomcat版本需要和Servlet规范匹配,比如Tomcat 9对应Servlet 4.0,Tomcat 10对应Servlet 5.0,选择时要和后续依赖的Servlet API版本对应。
接下来需要准备构建工具,Maven是目前Java项目最常用的依赖管理工具,能自动下载和管理项目所需的第三方依赖,避免手动导入jar包的繁琐和版本冲突问题。安装Maven后需要配置好本地仓库路径和国内镜像源,比如阿里云的Maven镜像,能大幅提升依赖下载速度。如果使用IDE开发,比如IntelliJ IDEA或者Eclipse,还需要确保IDE已经正确关联了安装好的JDK和Maven,这样创建项目时能自动识别环境配置,减少后续手动调整的工作量。
还需要注意各组件之间的版本兼容性,这是很多新手容易忽略的点。比如Spring MVC 5.3.x版本需要Tomcat 9及以上,Servlet API版本需要4.0,如果使用了Tomcat 8搭配Spring 5.x就会出现类找不到的报错。建议在搭建前先查阅Spring官方文档的版本说明,确认所有组件的版本匹配关系,避免后续排查不必要的问题。如果是第一次搭建,也可以选择比较稳定的组合,比如JDK 11 + Tomcat 9 + Spring MVC 5.2.x,这个组合经过大量项目验证,兼容性较好。
基于Maven的Spring MVC依赖配置
准备好基础环境后,就可以创建Maven项目并配置Spring MVC的依赖了。首先在IDE中创建一个Maven项目,项目类型选择Web Application,或者手动创建符合Maven目录结构的项目,确保有src/main/java、src/main/resources、src/main/webapp这几个核心目录,其中src/main/webapp目录下需要包含WEB-INF文件夹,这是JavaWeb项目的标准结构。如果是手动创建项目,需要在pom.xml中指定打包方式为war,因为Spring MVC项目最终需要打成war包部署到Tomcat容器中运行。
接下来在pom.xml中添加Spring MVC相关的依赖,核心依赖包括spring-webmvc,这个依赖会自动引入Spring的核心模块,比如spring-core、spring-context、spring-web等,不需要手动逐个添加。同时还需要添加Servlet API的依赖,因为Spring MVC的DispatcherServlet是基于Servlet实现的,这个依赖的scope需要设置为provided,因为Tomcat容器本身已经提供了Servlet相关的类,打包时不需要把这些类打入war包,避免冲突。如果需要使用JSP作为视图层,还需要添加JSTL的依赖,用于JSP页面的标签处理。
以下是基础的pom.xml依赖配置示例,所有HTML特殊字符都已经做了转义:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>spring-mvc-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<spring.version>5.2.20.RELEASE</spring.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!-- Spring MVC核心依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Servlet API依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- JSTL依赖,用于JSP视图 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 配置Tomcat Maven插件,方便本地运行 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
添加完依赖后,可以执行Maven的clean compile命令,检查依赖是否能正常下载,没有报错说明依赖配置正确。如果下载依赖时出现超时,可以检查Maven的镜像源配置,切换到国内镜像后通常能解决问题。另外如果不需要使用JSP,而是使用Thymeleaf等模板引擎,可以替换掉JSTL依赖,添加对应的模板引擎依赖即可,整体配置逻辑是类似的。
核心配置文件与DispatcherServlet注册
依赖配置完成后,需要注册Spring MVC的核心前端控制器DispatcherServlet,同时编写Spring MVC的配置文件。DispatcherServlet是Spring MVC的入口,所有的HTTP请求都会先经过它,再由它分发给对应的Controller处理。注册DispatcherServlet需要在src/main/webapp/WEB-INF目录下的web.xml文件中进行配置,如果是Servlet 3.0及以上版本,也可以通过Java代码的方式注册,不过web.xml配置的方式更直观,适合新手理解。
在web.xml中配置DispatcherServlet时,需要指定它的类名为org.springframework.web.servlet.DispatcherServlet,同时配置初始化参数contextConfigLocation,指定Spring MVC配置文件的位置,如果不指定这个参数,DispatcherServlet会默认读取WEB-INF目录下名为[servlet-name]-servlet.xml的配置文件,比如servlet-name是springmvc,就会读取springmvc-servlet.xml。还需要配置load-on-startup为1,让Tomcat启动时就初始化DispatcherServlet,而不是第一次请求时才初始化,提升首次请求的响应速度。
以下是web.xml的配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 注册Spring MVC前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 映射所有请求到DispatcherServlet -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
接下来需要创建Spring MVC的配置文件,对应上面contextConfigLocation指定的classpath:spring-mvc.xml,也就是在src/main/resources目录下创建spring-mvc.xml文件。这个配置文件需要开启组件扫描,让Spring自动扫描@Controller注解的类,将其注册为Spring容器中的Bean。同时需要配置视图解析器,比如使用JSP作为视图时,配置InternalResourceViewResolver,指定视图文件的前缀和后缀,这样Controller返回视图名称时,框架会自动拼接前缀和后缀找到对应的JSP文件。
以下是spring-mvc.xml的配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 开启组件扫描,扫描Controller所在的包 -->
<context:component-scan base-package="com.example.controller"/>
<!-- 开启Spring MVC注解驱动,支持@RequestMapping等注解 -->
<mvc:annotation-driven/>
<!-- 配置JSP视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
配置完成后,需要创建对应的Controller和JSP文件验证环境是否搭建成功。比如在com.example.controller包下创建TestController类,添加@Controller注解,编写一个处理请求的方法,返回视图名称。然后在WEB-INF/views目录下创建对应的JSP文件,启动Tomcat访问对应的请求路径,如果能正常返回JSP页面的内容,说明Spring MVC环境搭建成功。
以下是简单的Controller示例代码:
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Spring MVC环境搭建成功");
return "hello";
}
}
对应的hello.jsp文件内容可以很简单,比如输出${message}即可。启动项目后访问http://localhost:8080/hello,如果页面显示“Spring MVC环境搭建成功”,就说明整个环境配置没有问题。如果访问时出现404或者500错误,可以检查Controller的包是否在组件扫描的路径下,视图解析器的前缀后缀是否正确,JSP文件是否存在,逐步排查问题即可。
Spring MVCJavaWeb环境配置修改时间:2026-08-26 11:53:36