在 Java Web 开发中,Spring 框架是一个非常强大且广泛使用的框架。它提供了丰富的功能,如依赖注入、面向切面编程等,能够帮助开发者更高效地构建企业级应用。而 Maven 和 Gradle 是 Java 项目中常用的构建工具,它们可以帮助我们管理项目的依赖、编译、打包等任务。本文将详细介绍如何使用 Maven 和 Gradle 来创建 Spring Web 项目。
在开始创建项目之前,我们需要确保以下环境已经安装并配置好:
JAVA_HOME
环境变量。MAVEN_HOME
环境变量,并将 %MAVEN_HOME%\bin
添加到系统的 PATH
环境变量中。GRADLE_HOME
环境变量,并将 %GRADLE_HOME%\bin
添加到系统的 PATH
环境变量中。File
-> New
-> Project
。Maven
,确保右侧的 Create from archetype
选项被勾选。org.apache.maven.archetypes:maven-archetype-webapp
作为项目原型,点击 Next
。GroupId
、ArtifactId
和 Version
等信息,点击 Next
。Settings.xml
文件路径和本地仓库路径,点击 Next
。Finish
。打开项目中的 pom.xml
文件,添加以下 Spring 相关的依赖:
<dependencies>
<!-- Spring Web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.18</version>
</dependency>
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
在 src/main/webapp/WEB-INF
目录下创建 spring-servlet.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"/>
<!-- 开启 Spring MVC 注解驱动 -->
<mvc:annotation-driven/>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
在 src/main/webapp/WEB-INF
目录下创建 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>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
src/main/java
目录下创建 com.example.controller
包,并在该包下创建 HelloController.java
文件:import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "Hello, Spring Web!";
}
}
2. 在 `src/main/webapp/WEB-INF` 目录下创建 `views` 目录,并在该目录下创建 `hello.jsp` 文件:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello Spring</title>
</head>
<body>
<h1>Hello, Spring Web!</h1>
</body>
</html>
在 IntelliJ IDEA 中,点击 Run
-> Edit Configurations
,添加一个 Tomcat Server
配置,将项目部署到 Tomcat 服务器上,然后启动服务器。在浏览器中访问 http://localhost:8080/hello
,即可看到 Hello, Spring Web!
的输出。
File
-> New
-> Project
。Gradle
,选择 Java 作为项目语言,点击 Next
。GroupId
、ArtifactId
和 Version
等信息,点击 Next
。Next
。Finish
。打开项目中的 build.gradle
文件,添加以下 Spring 相关的依赖:
plugins {
id 'org.springframework.boot' version '2.6.7'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'war'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
在 src/main/java
目录下创建 com.example
包,并在该包下创建 DemoApplication.java
文件:
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在 src/main/java/com.example
包下创建 controller
子包,并在该包下创建 HelloController.java
文件:
package com.example.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
在 IntelliJ IDEA 中,右键点击 DemoApplication.java
文件,选择 Run 'DemoApplication.main()'
,启动 Spring Boot 应用程序。在浏览器中访问 http://localhost:8080/hello
,即可看到 Hello, Spring Boot!
的输出。
比较项 | Maven | Gradle |
---|---|---|
配置文件格式 | XML | Groovy 或 Kotlin DSL |
依赖管理 | 声明式,通过 <dependency> 标签 |
更灵活,支持动态版本、排除依赖等 |
构建速度 | 相对较慢,尤其是大型项目 | 较快,支持增量构建 |
学习成本 | 容易上手,XML 格式直观 | 相对较高,需要学习 Groovy 或 Kotlin |
本文详细介绍了使用 Maven 和 Gradle 创建 Spring Web 项目的步骤,包括环境准备、项目创建、依赖添加、配置文件编写等。Maven 和 Gradle 各有优缺点,开发者可以根据项目的规模和个人喜好选择合适的构建工具。希望本文能够帮助你快速搭建 Spring Web 开发环境,开启 Java Web 开发之旅。