[SpringMvc]使用 IntelliJ IDEA 创建传统 Spring MVC 项目(非 Spring Boot)

学习基础的Spring框架,首先,使用IDEA创建传统的Spring MVC项目,手动配置依赖和服务器,比如Tomcat。

接下来,我需要考虑步骤。首先,创建Maven项目,因为用户可能更熟悉Maven,或者至少Maven在IDEA中比较直观。然后,添加必要的依赖,比如Spring Core、Spring MVC、Servlet API等。用户可能需要知道这些依赖的版本,但要注意版本兼容性。例如,Spring 5.x可能需要Java 8或更高版本,Tomcat 9或更高版本。

然后,配置web.xml和DispatcherServlet。这里需要指导用户如何创建webapp目录结构,以及配置DispatcherServlet,并指定Spring的配置文件位置。用户可能不熟悉传统的web.xml配置,所以需要详细说明。

接下来是创建Spring配置文件,比如applicationContext.xml,配置组件扫描和视图解析器。视图解析器可能需要设置前缀和后缀,指向WEB-INF下的视图文件,比如JSP。

然后,创建一个简单的Controller类,处理请求并返回视图名称。用户需要知道如何编写Controller和映射请求路径。

最后,配置Tomcat服务器,将项目部署到Tomcat并运行。可能需要指导如何添加本地Tomcat服务器到IDEA,并配置部署。

需要注意的潜在问题包括:依赖版本冲突,项目结构是否正确(特别是webapp目录的位置),web.xml是否正确配置,以及Tomcat的部署设置是否正确。此外,用户可能忘记添加JSP相关的依赖,导致视图无法解析,所以需要提醒添加JSTL或相关的依赖。

可能还需要解释为什么某些步骤是必要的,例如,为什么需要web.xml,以及组件扫描的作用,这样用户能更好地理解传统Spring MVC的配置方式。同时,确保用户了解如何手动处理这些配置,而不是依赖Spring Boot的自动配置。

总结步骤:创建Maven项目→添加依赖→配置web.xml和DispatcherServlet→创建Spring配置文件→编写Controller→配置视图解析器→设置Tomcat并部署。过程中需要详细说明每个步骤的具体操作,并检查可能的错误点,比如目录结构是否正确,依赖是否正确添加,XML配置是否有误等。

以下是使用 IntelliJ IDEA 创建传统 Spring MVC 项目(非 Spring Boot)的分步指南:

步骤 1: 创建 Maven 项目

  1. 打开 IDEA ➔ FileNewProject
  2. 选择 Maven ➔ 勾选 Create from archetype
  3. 找到并选择 maven-archetype-webapp(版本号默认即可)
  4. 填写 GroupIdArtifactId ➔ 完成创建

步骤 2: 手动添加 Spring 依赖

pom.xml 中添加以下依赖(建议版本):

<properties>
    <spring.version>5.3.30</spring.version>
</properties>

<dependencies>
    <!-- Spring Core -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- 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>

    <!-- JSP Support -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.3</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

步骤 3: 配置项目结构

  1. main 目录下新建:
    java 目录(存放 Java 代码)
    resources 目录(存放配置文件)
  2. 完善 webapp 结构:
    src/
    └── main/
        ├── webapp/
        │   └── WEB-INF/
        │       └── views/      <-- 存放 JSP 文件
        └── web.xml            <-- 重要配置文件
    

步骤 4: 配置 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">

    <!-- 配置 DispatcherServlet -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

步骤 5: 创建 Spring 配置文件

WEB-INF 下新建 spring-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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">

    <!-- 启用组件扫描 -->
    <context:component-scan base-package="com.example.controller"/>

    <!-- 配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- 启用 MVC 注解驱动 -->
    <mvc:annotation-driven/>
</beans>

步骤 6: 创建 Controller

src/main/java 下创建 com.example.controller.HomeController.java

package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {
    
    @GetMapping("/hello")
    public String sayHello() {
        return "hello"; // 对应 WEB-INF/views/hello.jsp
    }
}

步骤 7: 创建 JSP 视图

WEB-INF/views 下创建 hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Spring MVC</title>
</head>
<body>
    <h1>Hello Spring MVC!</h1>
</body>
</html>

步骤 8: 配置 Tomcat 服务器

  1. 点击 IDEA 右上角 Add Configuration+ ➔ 选择 Tomcat ServerLocal
  2. Deployment 标签页 ➔ 点击 + ➔ 选择 Artifact
  3. 选择生成的 war 包(通常以项目名命名)

步骤 9: 运行项目

  1. 点击 IDEA 运行按钮启动 Tomcat
  2. 访问 http://localhost:8080/your-project-name/hello

可能遇到的问题及解决:

  1. 404 错误
    • 检查 Controller 的包是否在组件扫描范围内
    • 确认视图文件路径是否匹配
    • 检查 URL 中的上下文路径是否正确

  2. JSP 无法解析
    • 确认添加了 JSP 相关依赖
    • 检查视图解析器配置的前缀/后缀

  3. 依赖冲突
    • 使用 mvn dependency:tree 查看依赖树
    • 排除重复依赖

建议使用 Spring 5.3.x + Tomcat 9.x + Java 8/11 的组合以确保兼容性。这种方式可以帮助你理解 Spring 的核心配置机制,与 Spring Boot 的自动配置形成对比。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。