Spring Boot Initializr 教程:一步步创建项目 – wiki基地


Spring Boot Initializr 教程:一步一步创建你的第一个 Spring Boot 项目

Spring Boot 已经成为 Java 领域构建微服务和企业级应用的事实标准。它极大地简化了 Spring 应用的搭建和开发过程,让你能够专注于业务逻辑,而不是繁琐的配置。而要开始一个 Spring Boot 项目,最快、最便捷的方式就是使用 Spring Boot Initializr

Spring Boot Initializr 是 Spring 官方提供的一个在线工具和 API 服务,旨在帮助开发者快速生成一个基本的 Spring Boot 项目骨架。它消除了手动配置构建系统(如 Maven 或 Gradle)、选择依赖以及设置项目结构的初期障碍。通过简单的选择和点击,你就能下载一个可以直接导入 IDE 并运行的初始项目。

本教程将带你一步一步了解如何使用 Spring Boot Initializr 创建一个简单的 Spring Boot 项目。我们将详细介绍 Initializr 页面上的每一个选项,以及生成的项目结构和如何运行它。

为什么选择 Spring Boot Initializr?

在深入教程之前,让我们先快速回顾一下使用 Initializr 的主要优势:

  1. 速度与便捷: 在几秒钟内生成一个功能完备的项目骨架,无需手动创建文件和配置。
  2. 避免配置错误: Initializr 确保了构建文件(pom.xmlbuild.gradle)中的依赖版本兼容且正确。
  3. 标准化项目结构: 生成的项目遵循 Spring Boot 的标准目录布局,易于团队协作和维护。
  4. 轻松添加依赖: 通过搜索和选择,你可以方便地加入各种 Spring 生态系统中的 Starter 依赖。
  5. 多种选择: 支持 Maven 和 Gradle、多种 Java 版本、Kotlin 和 Groovy 语言等。

有了这些优势,使用 Initializr 无疑是开启 Spring Boot 项目的最佳起点。

第一步:访问 Spring Boot Initializr 网站

首先,打开你的网络浏览器,访问 Spring Boot Initializr 的官方网站:

https://start.spring.io/

你会看到一个简洁直观的网页界面,这就是我们创建项目的“控制面板”。

第二步:配置你的项目基本信息(Project Metadata)

在 Initializr 页面上,左侧区域是用来配置项目元数据的。你需要在这里指定项目的基本属性。让我们逐一了解这些选项:

  1. Project (项目类型):

    • Maven Project: 使用 Maven 作为构建工具。Maven 是一个流行的项目管理和理解工具,基于项目对象模型(POM)。
    • Gradle Project: 使用 Gradle 作为构建工具。Gradle 是另一个强大的构建工具,使用 Groovy 或 Kotlin DSL 进行配置,通常更灵活且在某些场景下构建速度更快。
    • 选择建议: 如果你刚开始接触或者团队成员更熟悉 Maven,选择 Maven 是一个稳妥的选择。如果追求构建速度或喜欢更灵活的配置方式,可以考虑 Gradle。在本教程中,我们将以 Maven Project 为例进行讲解。
  2. Language (编程语言):

    • Java: 最常用的选项,Spring Boot 的原生语言。
    • Kotlin: JetBrains 开发的一种现代、静态类型的 JVM 语言,与 Java 互操作性良好,越来越受欢迎。
    • Groovy: 一种动态类型的 JVM 语言。
    • 选择建议: 大多数 Spring Boot 项目使用 Java。本教程将选择 Java。
  3. Spring Boot (版本):

    • 这里列出了各种 Spring Boot 版本。通常会显示最新的稳定版本(GA – General Availability)。
    • 带有 SNAPSHOTM / RC 后缀的版本是开发中的快照版本、里程碑版本或发布候选版本,不建议在生产环境中使用。
    • 选择建议: 始终选择最新的 稳定 版本。它们已经过充分测试,包含了最新的功能和 bug 修复。在教程写作时,选择一个最新的非快照/非里程碑版本即可。
  4. Project Metadata (项目元数据): 这一部分需要填写项目的标识信息。

    • Group (组 ID): 通常是公司或组织的域名倒序,例如 com.exampleorg.myapp。这有助于防止命名冲突。
    • Artifact (项目 ID): 项目的名称,例如 demomyprojectuserservice。它将成为 JAR/WAR 文件的名称一部分,也是构建工具中的核心标识。
    • Name (项目名称): 项目的可读名称,通常与 Artifact 相同,但允许包含空格或其他字符。它用于描述项目。
    • Description (项目描述): 对项目功能的简短描述。
    • Package name (包名): 根 Java 包的名称,通常是 Group ID 后面跟着 Artifact ID,例如 com.example.demo。这是你的主要应用程序类将存放的位置。
    • Packaging (打包方式):
      • Jar: 将应用程序打包成一个可执行的 JAR 文件,这是 Spring Boot 推荐的微服务打包方式,包含了嵌入式 Web 服务器。
      • War: 将应用程序打包成一个 WAR 文件,以便部署到传统的外部 Web 服务器(如 Tomcat, Jetty, WildFly)中。
      • 选择建议: 对于大多数 Spring Boot 应用(尤其是微服务),选择 Jar 是最常见和推荐的方式。
    • Java (Java 版本): 选择你的项目将使用的 Java 版本。确保你本地安装了选定的 Java 版本或更高版本。
    • 选择建议: 选择一个最新的 LTS (Long-Term Support) 版本,例如 Java 11、Java 17 或 Java 21,因为它们提供长期支持和最新的语言特性。

填写示例:

字段 值示例 说明
Project Maven Project 使用 Maven 构建
Language Java 使用 Java 语言
Spring Boot (最新稳定版本) 例如 3.x.x
Group com.example 公司域名倒序
Artifact demo 项目 ID
Name demo 项目名称
Description Demo project for Spring Boot 项目描述
Package name com.example.demo 根包名
Packaging Jar 打包成可执行 Jar
Java 17 或 21 选择一个 LTS 版本,确保本地已安装

填写完毕后,左侧区域的配置就完成了。

第三步:添加依赖(Add Dependencies)

页面的右侧区域是用来添加项目所需依赖的。Spring Boot Starter 依赖是 Spring Boot 的核心概念之一,它们是一组方便的依赖描述符,可以包含应用程序所需的所有常见依赖,并自动进行版本管理。例如,spring-boot-starter-web 包含了构建 Web 应用所需的一切依赖(如 Spring MVC, Tomcat 等)。

点击绿色的“Add Dependencies”按钮。会弹出一个搜索框和依赖列表。

你可以通过搜索框输入关键字来查找你需要的依赖,或者浏览列表。Initializr 提供了非常多的 Starter 依赖,涵盖了 Web、数据访问、安全、消息队列、测试等各种方面。

对于一个简单的演示项目,我们至少需要以下依赖:

  1. Spring Web: 这是构建 Web 应用(包括 RESTful 服务)的必要依赖。它会自动引入 Spring MVC 和嵌入式 Web 服务器(默认是 Tomcat)。
    • 在搜索框输入 “Web”,找到 “Spring Web” 并点击添加。
  2. Spring Boot DevTools: 这个依赖为开发者提供了许多便利功能,例如修改代码后自动重启应用(Hot Swapping),对于开发非常有用。
    • 在搜索框输入 “DevTools”,找到 “Spring Boot DevTools” 并点击添加。

添加后,你会在右侧区域看到已经选中的依赖列表,例如:

Selected Dependencies:
* Spring Web
* Spring Boot DevTools

你可以根据项目需求继续添加其他依赖,例如:
* Spring Data JPAH2 Database (用于简单的数据库访问)
* Spring Security (用于安全认证和授权)
* ThymeleafFreeMarker (用于服务器端模板渲染)
* Lombok (简化 Java Bean 编写)
* 等等…

重要提示: 对于初学者,建议先添加最基本和必需的依赖。你随时可以在项目生成后,手动修改 pom.xmlbuild.gradle 文件来添加或删除依赖。

第四步:生成项目(Generate)

完成左侧的基本信息配置和右侧的依赖选择后,你就准备好生成项目了。

在页面的底部或右侧,你会看到一个按钮:
* Generate: 生成一个 .zip 压缩包,包含配置好的项目骨架。
* Explore: 查看项目将生成的结构和文件内容,但不下载。这个功能对于了解 Initializr 生成了什么非常有帮助。

点击 Generate 按钮。

浏览器会下载一个名为 demo.zip (如果你在 Artifact 字段填写的是 demo) 的文件。这就是你的 Spring Boot 项目骨架压缩包。

第五步:解压并导入到 IDE

下载完成后,找到 demo.zip 文件,并将其解压到你希望存放项目的目录。

解压后,你会看到一个名为 demo 的文件夹(或者你指定的 Artifact 名称)。这个文件夹就是你的 Spring Boot 项目的根目录。

接下来,你需要将这个项目导入到你常用的集成开发环境(IDE)中。主流的 Java IDE 都提供了方便的导入 Maven 或 Gradle 项目的功能:

  • IntelliJ IDEA:
    • 选择 File -> Open...
    • 导航到你解压后的项目文件夹 (demo),选中该文件夹并点击 Open
    • IntelliJ 会自动检测到这是一个 Maven 或 Gradle 项目,并加载相应的构建配置。
  • Spring Tool Suite (STS) 或 Eclipse:
    • 选择 File -> Import...
    • 在弹出的对话框中,展开 MavenGradle 选项。
    • 选择 Existing Maven ProjectsExisting Gradle Project
    • 点击 Next
    • 点击 Browse... 选择你解压后的项目根目录 (demo)。
    • 点击 Finish 完成导入。

导入过程可能需要一些时间,IDE 会下载项目所需的依赖库。请确保你的电脑连接到网络。

第六步:探索项目结构

项目成功导入 IDE 后,展开项目视图,你会看到 Initializr 生成的标准 Spring Boot 项目结构。以 Maven 项目为例,典型的结构如下:

demo/
├── .mvn/
│ └── wrapper/
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java <-- 主应用类
│ │ └── resources/
│ │ ├── application.properties <-- 配置文件
│ │ ├── static/ <-- 静态资源 (HTML, JS, CSS等)
│ │ └── templates/ <-- 模板文件 (Thymeleaf, FreeMarker等)
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java <-- 测试类
├── .gitignore <-- Git 忽略文件列表
├── mvnw <-- Maven Wrapper 脚本 (Linux/macOS)
├── mvnw.cmd <-- Maven Wrapper 脚本 (Windows)
└── pom.xml <-- Maven 项目对象模型文件

让我们看看几个关键文件和目录:

  1. pom.xml (或 build.gradle):

    • 这是项目的构建配置文件。它定义了项目的基本信息、依赖关系、构建插件等。
    • 如果你使用的是 Maven,pom.xml 文件会包含 spring-boot-starter-parent 作为父项目(提供了默认配置和依赖管理),以及你在 Initializr 中选择的 Starter 依赖(如 spring-boot-starter-webspring-boot-devtools)。
    • 例如,pom.xml 中会有一段 <dependencies> 标签,列出了所有依赖项。如果你需要添加新的依赖,通常就是编辑这个文件。
    • 它还会包含 spring-boot-maven-plugin,这个插件使得你的 Spring Boot 应用可以被打包成可执行的 JAR 文件,并提供了 spring-boot:run 等方便的命令。
  2. src/main/java/<package>/<Application>Application.java:

    • 这是应用程序的入口点。它包含一个 main 方法,这是 Java 应用程序的标准入口。
    • 这个类上会有一个 @SpringBootApplication 注解。这是一个组合注解,等同于同时使用了 @Configuration@EnableAutoConfiguration@ComponentScan
      • @Configuration: 标记这个类是一个配置类。
      • @EnableAutoConfiguration: 开启 Spring Boot 的自动配置机制。Spring Boot 会根据你添加的依赖(比如 spring-boot-starter-web)自动配置相应的组件(比如内嵌的 Tomcat 服务器、Spring MVC)。
      • @ComponentScan: 扫描当前包及其子包下的组件(如 @Component, @Service, @Repository, @Controller 等),并将它们注册为 Spring Bean。
    • SpringApplication.run(DemoApplication.class, args); 这行代码负责启动 Spring Boot 应用。
  3. src/main/resources/application.properties (或 application.yml):

    • 这是 Spring Boot 的全局配置文件。你可以在这里配置各种应用程序属性,例如服务器端口号、数据库连接信息、日志级别等。
    • Initializr 默认生成的是一个空文件,你需要根据需要手动添加配置项。
  4. src/test/java/<package>/<Application>ApplicationTests.java:

    • 这是 Spring Boot 提供的默认测试类。它使用了 @SpringBootTest 注解,可以在集成测试环境中加载 Spring 应用上下文。你可以基于这个模板编写单元测试和集成测试。

第七步:运行你的第一个 Spring Boot 项目

尽管我们还没有编写任何业务逻辑(例如一个 Controller 来响应 HTTP 请求),但 Initializr 生成的项目已经是可运行的。运行这个项目会启动内嵌的 Web 服务器(因为我们添加了 spring-boot-starter-web 依赖),但由于没有定义任何端点,访问任何路径都会得到一个默认的错误页面或 Whitelabel Error Page。

运行 Spring Boot 应用有几种方式:

  1. 在 IDE 中运行:

    • 找到主应用类 (DemoApplication.java)。
    • 右键点击该文件或类名。
    • 选择 Run 'DemoApplication.main()' (IntelliJ IDEA) 或 Run As -> Java Application (Eclipse/STS)。
    • IDE 会编译并启动应用程序。
  2. 使用 Maven Wrapper 或 Gradle Wrapper (命令行):

    • 打开命令行终端,切换到你的项目根目录 (demo 文件夹)。
    • 对于 Maven:执行 ./mvnw spring-boot:run (Linux/macOS) 或 mvnw spring-boot:run (Windows)。
    • 对于 Gradle:执行 ./gradlew bootRun (Linux/macOS) 或 gradlew bootRun (Windows)。
    • Wrapper 脚本 (mvnw, gradlew) 会自动下载并使用指定版本的 Maven 或 Gradle 来运行项目,确保构建环境的一致性。

无论哪种方式,你都会在控制台看到 Spring Boot 的启动日志。日志中会显示 Spring Logo、Spring Boot 版本、以及内嵌服务器(Tomcat)启动的信息,例如:

...
INFO ... : Starting DemoApplication v0.0.1-SNAPSHOT using Java 17 ...
INFO ... : No active profile set, falling back to 1 default profile: "default"
INFO ... : Started DemoApplication in X.XXX seconds (JVM running for Y.YYY)
INFO ... : Tomcat initialized with port(s): 8080 (http)
INFO ... : Netty started on port 8080
INFO ... : Netty server started on port 8080.
INFO ... : Tomcat started on port(s): 8080 (http) with context path ''
INFO ... : Started DemoApplication in ...

注意日志中显示的端口号,通常是 8080。这意味着内嵌的 Tomcat 服务器已经在 8080 端口上启动并监听请求了。

要停止应用程序,只需在 IDE 的运行控制台点击停止按钮,或者在命令行中按 Ctrl+C

结语

恭喜你!你已经成功使用 Spring Boot Initializr 创建并运行了一个基本的 Spring Boot 项目。这个项目骨架为你后续的开发工作奠定了坚实的基础。

从这里开始,你可以继续添加新的类来构建你的应用程序:

  • 创建 Controller 类来处理 HTTP 请求。
  • 创建 Service 类来实现业务逻辑。
  • 创建 Repository 类来处理数据访问。
  • 修改 application.properties 来配置数据库连接、服务器端口等。
  • 添加更多的依赖来集成其他技术栈(如 Spring Security, Kafka, Redis 等)。

Spring Boot Initializr 只是你 Spring Boot 开发旅程的第一步,但它是最关键和最高效的第一步。掌握了如何使用 Initializr,你就可以轻松地开始任何新的 Spring Boot 项目。

希望这篇详细教程对你有所帮助!现在,开始编写你的业务代码,构建伟大的应用程序吧!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部