源本科技 | 码上会

Spring Boot 初始化器

2026/03/17
15
0

引言

Spring Initializr 是由 VMware (原 Pivotal) 提供的核心工具,旨在解决 Java 开发者在构建 Spring 应用时“从零配置”的繁琐过程。它不仅仅是一个网页表单,更是一个强大的元数据服务,能够根据用户的选择动态生成符合最佳实践的项目结构、构建脚本(Maven/Gradle)以及必要的依赖配置

随着 Spring Boot 3 的发布,技术栈发生了重大变革。Spring Boot 3 基于 Spring Framework 6 构建,其最核心的变化是全面拥抱 Java 17 作为最低运行版本,并原生支持 Jakarta EE 9+ 规范(取代了旧的 Java EE/Jakarta EE 8)。这意味着旧版的初始化流程若仍沿用 Java 8 或 Java 11,将无法创建 Spring Boot 3 项目

核心变革

在开始创建项目之前,必须明确 Spring Boot 3 带来的底层架构变化,这是初学者最容易踩坑的地方。

1. JDK 版本的强制升级

Spring Boot 3 不再支持 Java 8 和 Java 11。最低要求是 Java 17

  • 原因:Spring Framework 6 大量使用了 Java 17 引入的新特性(如 Record 类、Pattern Matching 等)以提升性能和代码简洁度。

  • 影响:在使用初始化器时,如果 "Java" 选项中没有 17、21 或更高版本,说明你访问的可能是旧版模板或配置有误。

2. Jakarta EE 命名空间的迁移

这是代码层面最大的变动。Spring Boot 3 将所有的 javax.* 包名替换为了 jakarta.*

  • 背景:Oracle 将 Java EE 移交给 Eclipse 基金会后,命名为 Jakarta EE。为了区分旧版本,包名从 javax.servlet 变为 jakarta.servlet

  • 后果:如果你从 Spring Boot 2 复制代码到 Spring Boot 3 项目,所有涉及 Servlet、JPA、Validation 的导入语句都会报错,必须全局替换 javaxjakarta。Spring Initializr 生成的代码已自动处理此问题。

3. 本地化与镜像源选择

由于网络环境因素,直接访问官方源 (start.spring.io) 在国内可能速度较慢或依赖下载失败。

  • 官方源:适合海外环境或需要最新快照版(Snapshot)的场景。

  • 阿里云源 (start.aliyun.com):针对国内网络优化,预配置了阿里云 Maven 镜像,极大提升了依赖下载速度,且完全同步支持 Spring Boot 3 的最新稳定版。


使用初始化器创建项目

我们将通过两种主流方式创建项目:Web 界面版IDE 集成版

Web 界面定制(通用)

无论使用官方站还是阿里云站,核心配置逻辑一致。以下是基于 Spring Boot 3.x 的标准配置步骤:

1. 基础元数据配置

  • Project: 选择构建工具,推荐 Maven Project (企业最常用) 或 Gradle Project。

  • Language: 选择 Java (也可选 Kotlin/Groovy)。

  • Spring Boot: 关键步骤。务必在下拉菜单中选择 3.2.x3.3.x (具体视当前最新稳定版而定,2026 年可能已是 3.4+,但原理相同)。切勿选择 2.7.x

  • Group: 项目反域名,如 com.examplecom.company.department

  • Artifact: 项目名称,如 demo-service

  • Name: 通常与 Artifact 一致,用于显示名称。

  • Description: 项目描述。

  • Package name: 代码根包名,默认与 Group 一致。

  • Packaging: 选择 Jar (微服务标准) 或 War (传统部署)。

  • Java: 关键步骤。必须选择 172125 (LTS 版本优先)。不可选 8 或 11

2. 依赖选择

点击 "Add Dependencies",搜索并添加所需模块。Spring Boot 3 中常见的依赖变化示例:

  • Web 开发: 搜索 Spring Web (自动包含 Tomcat 和 Jakarta Servlet)。

  • 数据库访问: 搜索 Spring Data JPA (注意底层驱动需兼容 Jakarta)。

  • 校验框架: 搜索 Validation ( 此时引入的是 jakarta.validation 而非 javax.validation)。

  • 测试: 搜索 Spring Boot Test

3. 生成与导入

  • 点击底部的 "GENERATE" (官方) 或 "生成项目" (阿里) 按钮。

  • 系统将下载一个 ZIP 压缩包。

  • 解压后,使用 IntelliJ IDEA 或 Eclipse 导入该 Maven/Gradle 项目。

对比提示

IDE 内置初始化器(推荐)

在现代开发中,开发者很少手动打开浏览器,而是直接在 IDE 中完成。

IntelliJ IDEA 操作流程

  1. 点击 File -> New -> Project

  2. 左侧选择 Spring Initializr

  3. Service URL: 可以选择 Default (官方) 或自定义填入 https://start.aliyun.com

  4. 后续步骤与 Web 版完全一致:选择 Spring Boot 3.x,Java 17+,添加依赖。

  5. 点击 Next 直至 Finish,IDEA 会自动下载依赖并构建好目录结构。

优势分析

  • 无缝集成:无需切换窗口,项目直接打开在编辑器中。

  • 智能提示:依赖搜索时,IDE 会根据已选版本过滤不兼容的库。

  • 即时构建:生成即导入,自动配置 JDK 路径。


项目结构

使用 Spring Initializr 生成的 Spring Boot 3 项目具有标准化的目录结构,理解每个文件的作用是成为高级开发者的第一步。

1. 构建文件

  • pom.xml (Maven)build.gradle (Gradle):

    • 定义了父工程 spring-boot-starter-parent (版本 3.x),它统一管理了所有依赖的版本号,避免版本冲突。

    • 包含了 spring-boot-maven-plugin,用于打包可执行 Jar 和运行应用。

2. 主启动类

位于 src/main/java/.../DemoApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// @SpringBootApplication 是一个组合注解,包含 @Configuration, @EnableAutoConfiguration, @ComponentScan
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        // 启动内嵌的 Servlet 容器 (Tomcat/Jetty/Undertow)
        SpringApplication.run(DemoApplication.class, args);
    }
}

注意点:在 Spring Boot 3 中,如果涉及 Servlet 相关编程,导入语句必须是 import jakarta.servlet...*

3. 配置文件

位于 src/main/resources/ 目录下:

  • application.propertiesapplication.yml:

    • Spring Boot 3 推荐使用 YAML 格式,层次更清晰。

    • 常见配置示例 (server port, database url) 在此处修改。

    server:
      port: 8080
    spring:
      application:
        name: demo-service