开发

软件开发相关知识

Spring Boot 3.0升级指南:核心改动与迁移实战

一、升级概述

1.1 主要变化

项目Spring Boot 2.xSpring Boot 3.x
Java版本8-1717-21
Jakarta EE89+
javax.*packagejakarta.*

二、Java 17迁移

2.1 升级Java版本

17

2.2 新特性使用

// Records
public record UserDTO(Long id, String name, String email) {}

// Pattern Matching for instanceof
if (obj instanceof String s) {
    return s.toUpperCase();
}

三、Jakarta EE迁移

3.1 包名替换

// Spring Boot 2.x
import javax.persistence.*;
import javax.validation.constraints.*;

// Spring Boot 3.x
import jakarta.persistence.*;
import jakarta.validation.constraints.*;

3.2 批量替换

find . -name "*.java" -exec sed -i 's/javax\./jakarta./g' {} \;

四、Spring Security重构

4.1 配置方式变化

// Spring Boot 3.x
@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/public/**").permitAll()
                .anyRequest().authenticated()
            );
        return http.build();
    }
}

五、总结

Spring Boot 3.0升级要点:
1. Java 17+:必须升级
2. Jakarta EE:javax→jakarta
3. Spring Security:配置方式重构
4. 测试:使用@SpringBootTest