背景:3.1 刚发布,3.2 在路上
五月十八号 Spring Boot 3.1 正式发布,我们组件库当天就升了。3.2 按计划十一月才来,但里程碑里已经能看出方向。趁热把两版新特性盘一遍,顺手在预发环境验证了几个最实用的。
Docker Compose 支持(3.1)
以前本地起依赖靠 testcontainers 或者手写脚本。3.1 直接内置了 Docker Compose 支持,只要在 src/main/resources 放个 compose.yaml:
services:
redis:
image: redis:7
ports:
- "6379"
应用启动时自动拉起,且会自动把连接地址注入环境(比如 spring.data.redis.host),不用再手动配。本地调试体验提升明显,CI 里也省了一层容器编排。
SSL 配置(3.1)
3.1 引入了 SSL Bundle,把证书、密钥、信任库封装成可复用的配置块,多数据源、多客户端共用一套证书时不再到处复制:
spring:
ssl:
bundle:
jks:
internal:
keystore:
location: classpath:keystore.jks
password: ${KEYSTORE_PWD}
data:
redis:
ssl:
bundle: internal
服务连接抽象 ConnectionDetails(3.1)
3.1 把「如何连到一个服务」抽象成 ConnectionDetails,Docker Compose、K8s Service Binding、本地配置都能统一适配。迁移到云原生环境时,应用代码不用改,只换连接信息的来源。
Observability 增强(3.1 / 3.2)
3.1 把 Micrometer Observation 推到了更核心的位置,@Observed 注解一行就能给方法织入埋点:
@Observed(name = "order.create")
public Order create(OrderReq req) { ... }
配合 management.observations.* 可以把指标、链路、日志串起来。3.2 的里程碑里提到要把这套做得更细(更完整的 ProblemDetail 集成),值得期待。
3.2 值得提前关注的点
按当前路线图,3.2(十一月)会带来:声明式 RestClient(取代 RestTemplate 的新同步客户端)、虚拟线程的自动装配(JDK 21 的特性)、以及更完整的可观测性端点。这些现在还在里程碑阶段,建议先别在主干依赖。
先到这
《Spring Boot 3.1 与 3.2 新特性盘点》这块我前前后后踩了不止一次。今天先写这些,后面想到新的再补。