Spring 周报速览:2026 年 5 月 12 日这一周发生了什么

2026-05-12 24 预计阅读时间:1 分钟
来源:spring.io AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:6 分钟

Spring 官方的 "This Week in Spring" 系列每周汇总社区动态、版本发布和教程更新。5 月 12 日这一期的周报本身以链接集为主,没有长篇论述,但它指向的内容折射出 Spring 生态当前的关注方向。下面从几个典型主题切入,并附上可以直接跑的实践示例。

Spring Boot 3.x 的配置演进

Spring Boot 3 系列已经稳定,近期的小版本持续打磨细节:属性绑定更严格、NativeHints 支持更完善、Observability API 统一到 Micrometer 1.x 体系。周报中反复出现的链接指向 Boot 的配置迁移指南和 GraalVM native image 插件更新。

一个值得注意的变化:spring.autoconfigure.exclude 在 Boot 3.4+ 中支持在 application.yml 里直接写列表,不再必须拼逗号分隔的长字符串。

# application.yml — Boot 3.4+ 风格
spring:
  autoconfigure:
    exclude:
      - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
      - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration

如果你还在用旧格式,迁移后可读性明显提升。

Spring Framework 7 的前瞻信号

周报链接里开始出现 Framework 7 的早期讨论——虚拟线程(Project Loom)的深度整合是核心议题。从 Framework 6.2 起,SimpleAsyncTaskExecutor 已经支持虚拟线程,但 7 的目标是让整个请求处理链默认跑在虚拟线程上,不再需要手动配置。

当前可以这样提前体验:

@Configuration
public class VirtualThreadConfig {

    @Bean
    public AsyncTaskExecutor applicationTaskExecutor() {
        // Framework 6.2+ — 启用虚拟线程执行器
        return new SimpleAsyncTaskExecutor("vt-") {
            {
                setVirtualThreads(true);
            }
        };
    }
}
# application.properties — 同时让 Tomcat 请求线程也走虚拟线程
spring.threads.virtual.enabled=true

启动后用 jcmd <pid> Thread.dump_to_file -format=json 查看线程数,你会发现几百个并发请求只占用少量平台线程。

Spring Cloud 的 Observability 实战

周报多次提到 Micrometer 与 OpenTelemetry 的集成更新。Spring Boot 3.x 已把 tracing 和 metrics 统一到 Micrometer Observation API,但很多项目还在用旧版 Brave/Zipkin 直接注入的方式。下面是一个最小可运行的 OTel 导出配置:

<!-- pom.xml 关键依赖 -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-observation</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-bridge-otel</artifactId>
</dependency>
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-exporter-otlp</artifactId>
</dependency>
# application.yml — 把 trace 和 metric 都发到 OTel Collector
management:
  tracing:
    sampling:
      probability: 1.0
  otlp:
    metrics:
      export:
        url: http://localhost:4318/v1/metrics
        step: 30s
    tracing:
      export:
        url: http://localhost:4318/v1/traces

本地用 docker run -p 4318:4318 -p 18889:18889 otel/opentelemetry-collector-contrib:0.96.0 起一个 Collector,再启动应用,访问任意接口后就能在 Collector 的 debug 端口看到导出的数据。

Spring Security 的简化趋势

周报链接指向 Security 6.4+ 的几篇教程,核心主题是:用 SecurityFilterChain lambda DSL 替代 WebSecurityConfigurerAdapter(后者已在 6.x 移除),以及方法级安全的 @PreAuthorize 与新注解 @AuthorizationPreFilter 的对比。

一个简洁的 SecurityConfig 示例:

@Configuration
@EnableMethodSecurity
public class SecurityConfig {

    @Bean
    SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        return http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/api/public/**").permitAll()
                .anyRequest().authenticated()
            )
            .oauth2ResourceServer(oauth2 -> oauth2
                .jwt(Customizer.withDefaults())
            )
            .build();
    }
}

注意 @EnableMethodSecurity 替代了旧的 @EnableGlobalMethodSecurity,默认开启 pre/post authorize,不再需要额外参数。

实践检查清单

从这期周报指向的内容出发,可以梳理出几件值得近期做的事:

动作 优先级 说明
升级 Boot 到 3.4+ 配置格式、Observability、虚拟线程支持都更成熟
把 tracing 从 Brave 切到 Micrometer-OTel 桥接 Brave 已进入维护模式,新功能只在 Micrometer 体系推进
在非生产环境试跑虚拟线程 spring.threads.virtual.enabled=true 一行即可开启,观察线程行为
Security DSL 全面切换到 lambda 风格 旧式 configure() 方法已不可用,lambda DSL 是唯一正途
关注 Framework 7 的里程碑公告 目前还是早期阶段,但虚拟线程默认化会影响架构决策

每周扫一遍 "This Week in Spring" 不需要逐条精读,但把其中反复出现的主题(这次是虚拟线程和 Observability)标记出来,对照自己的项目做一两件具体动作,就能跟上生态节奏而不被淹没在链接堆里。


相关推荐