Skip to content
清晨的一缕阳光
返回

Spring Boot 4 快速入门

前言

Spring Boot 4 正式发布,带来了对 JDK 21+ 的全面支持、虚拟线程、可观测性增强等新特性。本文将带你快速入门 Spring Boot 4,从零开始构建第一个 RESTful API 应用。

环境要求

Spring Boot 4 的最低环境要求:

组件版本要求
JDK21 或更高版本
Spring Framework6.2+
Spring Boot4.0+
构建工具Maven 3.6+ / Gradle 8.5+
# 检查 JDK 版本
java -version

# 检查 Maven 版本
mvn -version

创建第一个 Spring Boot 项目

方式一:使用 Spring Initializr

访问 Spring Initializr 创建项目:

Project: Maven
Language: Java
Spring Boot: 4.x
Group: com.example
Artifact: demo
Name: demo
Package name: com.example.demo
Packaging: Jar
Java: 21

Dependencies 添加:

方式二:使用 IDEA 创建

  1. FileNewProject
  2. 选择 Spring Initializr
  3. 选择 JDK 21+
  4. 选择依赖项

方式三:手动创建 Maven 项目

<!-- pom.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>4.0.0</version>
        <relativePath/>
    </parent>
    
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot 4</description>
    
    <properties>
        <java.version>21</java.version>
    </properties>
    
    <dependencies>
        <!-- Web  starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!-- Actuator 监控 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        
        <!-- Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        
        <!-- 测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

项目结构

标准的 Spring Boot 项目结构:

demo/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/demo/
│   │   │       ├── DemoApplication.java      # 启动类
│   │   │       ├── controller/                # 控制器层
│   │   │       ├── service/                   # 服务层
│   │   │       ├── repository/                # 数据访问层
│   │   │       └── entity/                    # 实体类
│   │   └── resources/
│   │       ├── application.yml                # 配置文件
│   │       └── static/                        # 静态资源
│   └── test/
│       └── java/
│           └── com/example/demo/
│               └── DemoApplicationTests.java  # 测试类
├── pom.xml                                    # Maven 配置
└── README.md

第一个 RESTful API

1. 启动类

package com.example.demo;

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);
    }
}

@SpringBootApplication 注解解析

2. 创建 Controller

package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class HelloController {
    
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot 4!";
    }
    
    @GetMapping("/greeting")
    public Greeting greeting(String name) {
        return new Greeting(name, "Hello, " + name + "!");
    }
    
    record Greeting(String name, String message) {}
}

3. 配置文件

# src/main/resources/application.yml
server:
  port: 8080

spring:
  application:
    name: demo

management:
  endpoints:
    web:
      exposure:
        include: health,info,metrics
  endpoint:
    health:
      show-details: always

4. 运行应用

# Maven 运行
mvn spring-boot:run

# 或者打包后运行
mvn clean package
java -jar target/demo-0.0.1-SNAPSHOT.jar

5. 测试接口

# 测试 hello 接口
curl http://localhost:8080/api/hello

# 测试 greeting 接口
curl http://localhost:8080/api/greeting?name=World

# 访问 Actuator 健康检查
curl http://localhost:8080/actuator/health

Spring Boot 4 新特性

1. JDK 21+ 支持

Spring Boot 4 要求最低 JDK 21 版本,充分利用新特性:

// 使用 Record 简化 DTO
public record UserDTO(Long id, String name, String email) {}

// 使用 Switch 表达式
public String getType(Type type) {
    return switch (type) {
        case A -> "Type A";
        case B -> "Type B";
        case C -> "Type C";
    };
}

// 使用 Text Blocks
public String getSql() {
    return """
        SELECT * FROM users
        WHERE status = 'ACTIVE'
        """;
}

2. 虚拟线程支持

Spring Boot 4 支持虚拟线程,大幅提升并发性能:

# application.yml
spring:
  threads:
    virtual:
      enabled: true
@RestController
@RequestMapping("/api/users")
public class UserController {
    
    @GetMapping
    public List<User> getUsers() {
        // 虚拟线程处理高并发请求
        return userService.findAll();
    }
}

3. 可观测性增强

Spring Boot 4 增强了可观测性支持:

# application.yml
management:
  tracing:
    sampling:
      probability: 1.0
  metrics:
    tags:
      application: ${spring.application.name}

4. GraalVM Native Image

支持编译为原生镜像,启动更快、内存更小:

# 构建原生镜像
mvn -Pnative native:compile

# 运行原生镜像
./target/demo

常用注解速查

注解说明
@SpringBootApplication启动类核心注解
@RestControllerRESTful 控制器
@RequestMapping请求映射
@GetMappingGET 请求映射
@PostMappingPOST 请求映射
@PutMappingPUT 请求映射
@DeleteMappingDELETE 请求映射
@PathVariable路径参数
@RequestParam查询参数
@RequestBody请求体
@Autowired依赖注入
@Service服务层注解
@Repository数据访问层注解
@Configuration配置类
@Bean定义 Bean
@Value注入配置值

下一步学习

完成快速入门后,建议继续学习:

  1. 自动配置原理 - 理解 Spring Boot 核心机制
  2. 配置管理 - 掌握多环境配置
  3. Web 开发 - 深入学习 RESTful API
  4. 数据访问 - 集成 MyBatis/JPA
  5. 安全认证 - Spring Security 实战

总结

本文介绍了 Spring Boot 4 的快速入门:

Spring Boot 4 让 Java 开发更加简洁高效。立即开始你的 Spring Boot 4 之旅吧!

参考资源


分享这篇文章到:

上一篇文章
MySQL 主从复制原理
下一篇文章
项目结构规范