Spring Boot 4 开虚拟线程,JDK 21 和 25 上 pinning、ThreadLocal、ScopedValue 表现不一样
同一个 Spring Boot 4.1.1 项目在 JDK 21 与 JDK 25 上实测:JEP 491 之后 synchronized 不再钉住载体线程,ThreadLocal 当缓存在虚拟线程下失效,ScopedValue 不会自动穿过普通执行器,连接池成为新的瓶颈。
围绕 spring-boot 的技术文章与经验分享。
共 92 篇文章同一个 Spring Boot 4.1.1 项目在 JDK 21 与 JDK 25 上实测:JEP 491 之后 synchronized 不再钉住载体线程,ThreadLocal 当缓存在虚拟线程下失效,ScopedValue 不会自动穿过普通执行器,连接池成为新的瓶颈。
Spring Security 7 用 @EnableMultiFactorAuthentication 把密码和一次性令牌变成两个必须同时具备的因子。本文在 Spring Boot 4.1.1 上搭了一套两步登录,用 MockMvc 测试和 curl 验证了只过一步进不去、令牌只能用一次。
Spring Framework 7 内置了 @Retryable 和 @ConcurrencyLimit,但 Spring Boot 4.1.1 不会自动开启,不加 @EnableResilientMethods 注解就静默失效。本文在 JDK 21/25 上实测 maxRetries 的真实调用次数、异常排除、自调用绕过代理,以及 BLOCK 与 REJECT 两种并发策略。
AgentScope Java 2.0.4 删除了 RuntimeContextAware、ToolInjection 等 API,HttpTransportConfig 默认 HTTP 版本改为自动选择,并新增 AgentRun/RunControl 与请求级 ToolRequestConfig。本文在 Spring Boot 4.0.5 中用本地桩模型实际运行了这些新 API。
LangChain4j Community 1.22.0-beta32 新增 Spring Boot 3/4 两个 STDIO MCP Server starter,按 Bean 名显式选择 @Tool Bean 暴露为 MCP 工具,且不依赖 Spring AI。本文用 Boot 4 starter 在 Spring Boot 4.0.5 上跑通了 initialize、tools/list 与 tools/call。
Spring Framework 7 的 RestTestClient 基于 RestClient,可以绑 MockMvc、控制器、路由函数、应用上下文,也能连真服务器。本文在 Spring Boot 4.1.1 上实测五种绑定,并和 MockMvc、WebTestClient 的写法与适用场景做了对照。
Spring Framework 7 的 HTTP Service Registry 加上 Spring Boot 4 的 spring.http.serviceclient 分组属性,让 @HttpExchange 接口按组配置 base-url 和超时。本文用 Boot 4.1.1 实测两组不同超时,并和手工 HttpServiceProxyFactory 写法对照。
EventSourcingDB 官方 Java Client SDK 1.0 发布,包含客户端、Testcontainers 模块和 Spring Boot 4 starter。本文在 JDK 21 + Spring Boot 4.1.1 上实际建项目跑通依赖、最小读写、starter 配置和 @ServiceConnection 集成测试,记录踩坑,并说明 SDK(MIT)与数据库本身(闭源商用、有免费档)的授权边界。
OpenTelemetry Java agent 2.32.0 已作为 3.0 候选版发布。开启预览后默认遥测、配置与插桩行为会变,依赖旧属性名与单位的看板和告警可能先失效。
JobRunr / JobRunr Pro 9.0.0(2026-09-30):OSS 新增 Job History Chart(含 runStepOnce 步骤可视化);Pro 含 Job Analytics、batch 暂停恢复、Postgres LISTEN/NOTIFY。Micronaut 需 5;v9 为最后支持 Java 8 的 OSS 版。