开发
软件开发相关知识
Spring Boot 3.0升级指南:核心改动与迁移实战
一、升级概述
1.1 主要变化
| 项目 | Spring Boot 2.x | Spring Boot 3.x |
|---|---|---|
| Java版本 | 8-17 | 17-21 |
| Jakarta EE | 8 | 9+ |
| javax.* | package | jakarta.* |
二、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