用途:面向 Spring Boot 4.0 的迁移与开发参考,汇总 Jakarta EE 10、Java 21+ 特性及常见迁移要点。
主要能力:
- Jakarta EE 迁移对照:javax.persistence/validation/servlet/annotation 改为 jakarta 对应包。
- 安全配置:使用 SecurityFilterChain Bean 替代已废弃的 WebSecurityConfigurerAdapter,示例含 CSRF 关闭、无状态会话、requestMatchers 授权与 OAuth2 JWT 资源服务器。
- 虚拟线程:application.yml 中设置 spring.threads.virtual.enabled: true。
- Record 作为 DTO,配合 @NotNull、@NotBlank、@Email 校验注解。
- ProblemDetail 异常处理:@ExceptionHandler 返回 ProblemDetail.forStatusAndDetail。
- 声明式 HTTP 客户端:接口用 @GetExchange,通过 HttpServiceProxyFactory 与 RestClientAdapter 创建客户端。
- @ConfigurationProperties 结合 Record,支持嵌套配置。
- 可观测性:@Observed 注解标注服务方法。
- TestContainers 集成:@SpringBootTest、@Testcontainers、@Container 与 @ServiceConnection 自动配置数据源。
反模式:WebSecurityConfigurerAdapter 已废弃;antMatchers 已移除,改用 requestMatchers;javax 导入不再可用。
适用场景:Spring Boot 4.0 项目迁移、新项目脚手架、Jakarta 命名空间替换、安全与测试配置参考。
限制:资料为速查式片段,未提供完整项目结构、依赖版本、构建配置或运行步骤;部分示例需结合具体项目调整。相关技能包括 apigen-architecture、testcontainers、gradle-multimodule。