人人都会AI编程

2.2 Spring Boot 项目初始化:官方脚手架、IDEA 一键创建

更新时间:2026-07-10

Spring Boot 的最大优势之一就是“分钟级”从零搭建一个可运行的项目骨架。无论你是刚接手一个新需求,还是想要快速验证某个想法,都不需要手工引入一堆 Jar 包、编写繁琐的 XML 配置。Spring 官方提供了两种最主流的项目初始化方式:通过网页端的 Spring Initializr,以及 在 IntelliJ IDEA 中一键生成。这两种方式生成的工程结构和内容完全一致,只是操作路径不同。

2.2.1 方式一:通过 Spring Initializr 网页端创建

Spring Initializr 的官方地址是 https://start.spring.io。打开后,你会看到一个简洁的表单,按以下步骤操作即可生成项目。

1. 选择构建工具

默认提供 Maven 和 Gradle 两个选项。对于大多数项目,Maven 是最常见的选择,尤其是企业内部统一使用 Maven 私服时;如果你偏好 Groovy 或 Kotlin DSL,统一使用 Gradle 也很方便。本书以 Maven 为例,保持与绝大多数教程一致。

2. 选择语言

Java、Kotlin、Groovy 三选一。传统 Java 项目直接选 Java

3. 选择 Spring Boot 版本

下拉框中会列出当前可用的稳定版本。务必选择一个 正式发行版(Release),避免使用带有 SNAPSHOTM(里程碑)或 RC(候选发布)后缀的版本,这些版本仅用于测试新功能,不适合生产环境。一般情况下,选择最新的 GA(General Availability)版本即可,例如 3.2.x。需要注意,Spring Boot 3.x 要求 JDK 17 及以上。

4. 填写项目元数据

  • Group:组织或公司的域名反写,例如 com.example。这决定了生成代码的包结构根路径。
  • Artifact:项目的唯一标识,也就是最终生成的 Jar 包名称,例如 order-service。通常使用小写字母和连字符。
  • Name:项目显示名称,会作为主类的名字前缀(如 OrderServiceApplication),一般与 Artifact 保持一致。
  • Description:可选的项目描述。
  • Package name:基础包路径,默认由 Group 和 Artifact 拼接而成,如 com.example.orderservice。可自行修改,建议全部小写。
  • Packaging:打包方式,Jar(默认)和 War 两种。独立运行的 Spring Boot 应用几乎都使用 Jar,即便包含 Web 能力也无需外部 Servlet 容器。
  • Java:选择与开发环境匹配的 JDK 版本,如 17 或 21。确认机器上安装的 JDK 版本与此一致。

5. 添加起步依赖

右侧“ADD DEPENDENCIES”按钮可以搜索并添加所需依赖。对于刚刚开始的 Web 应用,只需添加以下两个即可:

  • Spring Web:引入 Spring MVC、嵌入 Tomcat、Jackson 序列化等 Web 开发全栈能力。
  • Spring Boot DevTools:提供热部署、开发时自动重启等便利功能(可选)。

其他常用 starter 如 JPA、MySQL Driver、Lombok 等,我们会在后续章节按需引入,此时不建议一次性添加过多依赖,免得上手时眼花缭乱。

6. 生成与导入

点击“GENERATE”按钮,浏览器会下载一个压缩包(如 order-service.zip)。解压后,用 IDE 导入该 Maven 项目即可。以 IntelliJ IDEA 为例,可以直接通过 File → Open 选择解压后的 pom.xml 所在的目录,IDEA 会自动识别为 Maven 项目并开始下载依赖。

2.2.2 方式二:通过 IntelliJ IDEA 一键创建

如果你使用的是 IntelliJ IDEA Ultimate 或较新版本的 Community 版(自带 Spring Initializr 插件),可以完全不用离开 IDE 就能完成项目构建。

操作步骤:

  1. 启动 IDEA,选择 File → New → Project
  2. 在左侧列表中找到 Spring Initializr,点击它。
  3. 在右侧配置界面中:
  • Location:指定项目存储的本地路径。
  • Language:选择 Java。
  • Type:构建工具选 Maven 或 Gradle,这里选 Maven。
  • GroupArtifact 与网页端填写规则一致。
  • Package name:自动生成,可调整。
  • JDK:确保选择一个 17 或更高版本的 JDK。如果列表中没有,可以通过 Add JDK 指向本地安装的 JDK 目录。
  • Java:选择对应的 JDK 版本,如 17。
  • Packaging:Jar。
  1. 点击 Next,进入依赖选择页面。这个界面与网页端的 ADD DEPENDENCIES 类似,搜索并勾选“Spring Web”。(DevTools 同理可按需加入)
  2. 点击 Create,IDEA 便会自动下载模板、引入 Maven 依赖,并打开生成好的工程。

这种方式的好处是零切换,不用下载压缩包再导入,依赖解析和索引构建直接由 IDE 自动完成。如果你平时的工作环境就是 IDEA,这个路径无疑更流畅。

2.2.3 生成项目的标准结构

不论使用哪种方式,最终得到的项目结构都是相似的(以 Maven 项目为例):

order-service
├── .mvn/wrapper/               # Maven Wrapper 文件(可选)
├── mvnw / mvnw.cmd             # Maven Wrapper 启动脚本
├── pom.xml                     # Maven 构建配置文件
└── src
    ├── main
    │   ├── java
    │   │   └── com.example.orderservice
    │   │       └── OrderServiceApplication.java  # 应用入口类
    │   └── resources
    │       ├── static/         # 静态资源(html, css, js 等)
    │       ├── templates/      # 模板文件(Thymeleaf 等)
    │       └── application.properties  # 应用配置文件
    └── test
        └── java
            └── com.example.orderservice
                └── OrderServiceApplicationTests.java  # 测试类

关键文件解读:

  • 主应用类@SpringBootApplication 注解标注的类,这是整个应用的入口。它等价于同时使用了 @Configuration@EnableAutoConfiguration@ComponentScan,告诉 Spring Boot 开启自动配置、组件扫描等功能。
  • pom.xml:这是整个项目的灵魂配置文件。打开它,你会看到:
  • <parent> 标签引入了 spring-boot-starter-parent,这是一个特殊的 POM,集中定义了 Spring Boot 各依赖的版本号,让你在引入其他 starter 时不必操心版本冲突。
  • <dependencies> 中至少包含 spring-boot-starter-web,这个起步依赖又会传递性引入十几个相关的 Jar 包,一次性获得 Web 开发的所有基础能力。
  • <build> 中的 spring-boot-maven-plugin 插件负责将工程打包为可执行的 Fat Jar,并可以在打包时扫描 main 方法所在的主类。
  • application.properties:Spring Boot 应用的配置中心。目前它是空的,但后续几乎所有的定制化配置(服务器端口、数据库连接、日志级别等)都会写在这里或对应的 YAML 文件中。
  • 测试类OrderServiceApplicationTests 被标注了 @SpringBootTest,表示这是一个会启动完整 Spring 上下文的集成测试。最开始的测试方法 contextLoads() 只做一件事——验证应用上下文能否成功加载。

2.2.4 验证项目是否正常启动

进入生成的工程目录,打开主应用类,你会发现一个标准的 main 方法:

@SpringBootApplication
public class OrderServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderServiceApplication.class, args);
    }
}

直接运行这个 main 方法(可以点击 IDEA 左侧的绿色三角箭头,或右键选择 Run),Spring Boot 就会启动。在控制台中你将看到经典的 Spring 启动 Banner,以及一条类似如下的信息:

Tomcat started on port(s): 8080 (http) with context path ''
Started OrderServiceApplication in 1.234 seconds

这表明应用已经成功启动,内嵌的 Tomcat 服务器正在 8080 端口监听。虽然目前还没有任何控制器来处理请求,所以访问 http://localhost:8080 会返回 404,但这已经是个完整可用的基础项目。

2.2.5 常见问题与实用技巧

1. Maven 依赖下载极慢或失败

这是初始化阶段最容易遇到的问题。解决方法是配置 Maven 国内镜像。在 Maven 安装目录的 conf/settings.xml 文件或者项目级的 .m2/settings.xml 中添加阿里云或华为云的镜像源:

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

如果你使用的是 Maven Wrapper(即工程自带 mvnw),也要确保 pom.xml 中的仓库信息正确,或全局配置有效。

2. JDK 版本不匹配

Spring Boot 3.x 最低要求 JDK 17。如果你使用 JDK 8 或 11,项目能够导入,但启动时会抛出 UnsupportedClassVersionError 异常。因此,在 IDEA 中务必确认 Project Structure → Project SDK 使用的是 JDK 17 或更高版本。

3. IDEA 索引卡顿

第一次导入工程时,IDEA 会进行大量的依赖索引和符号分析,CPU 占用很高属于正常现象。耐心等待右下角的进度条完成即可。你也可以暂时关闭自动构建(非必需),但通常不需要干预。

4. 端口冲突

如果 8080 端口被其他程序(如另一台微服务、Tomcat 服务器、Nginx)占用,启动时会报 Port 8080 was already in use。此时可以在 application.properties 中添加一行:

server.port=9090

重新启动后,应用即监听在 9090 端口。

到此为止,一个标准的 Spring Boot 项目骨架已经准备好了。它不仅仅是“Hello World”,更是一个能够随时接入数据库、消息队列、安全控制等企业级组件的弹性平台。在下一节中,我们将基于这个项目编写第一个 RESTful 接口,真正开始业务开发的旅程。