Spring-Boot v3.4.0-M2¶
```markdown
⭐ 新功能¶
- 为
@ConditionalOnAvailableEndpoint
添加值别名并迁移简单条件 #41969 - 自动配置 BraveBaggageManager 上的远程字段 #41884
- 添加对 Pulsar 默认租户/命名空间的支持 #41851
- 在 JavaVersion 枚举中添加 TWENTY_THREE #41717
- 启用虚拟线程时,配置 Spring Integration 的任务调度器以使用它们 #41695
- 支持多个 Docker Compose 文件 #41691
- GraphQL 对于不支持的内容类型应回复 HTTP 415 #41675
- 使用结构化日志时自动禁用横幅 #41659
- 在环境中提供应用程序版本和 PID 的属性 #41604
- 更新
@ConditionalOnSingleCandidate
以处理回退 bean #41580 - 改进对 SAML 私钥和证书的属性支持 #41567
- 添加对 grafana/otel-lgtm 和 LgtmStackContainer 的支持 #41551
- 添加对 CNB 平台 API 版本 0.14 的支持 #41549
- 允许 PemContent.of 处理未修剪的内容 #41540
- 提供使用客户端证书进行 Couchbase 认证的自动配置 #41520
- 改进结构化日志支持 #41491
- 为 WAR 部署关闭 Reactor 调度器 #41548
- 添加 SslInfoContributor 和 SslHealthIndicator #41205
- 在可插拔抽象后重新设计 Cloud Foundry 执行器支持 #41135
- 为镜像构建添加平台选项 #40944
- 引入 ApplicationProperties 类,以便我们可以停止直接绑定到 SpringApplication #40592
- 在 AnnotatedControllerConfigurer 上自动配置 HandlerMethodArgumentResolvers #40393
- 在 Cloud Foundry 环境中自动激活健康探针 #39804
- 支持基于 JavaBean 的配置属性中的
@Name
#39452 - 使 DataSourceBuilder 能够从 URL 派生 driverClassName #39376
- 更容易定义与自动配置的同类型 bean #22403
- 为计划任务执行器端点添加执行元数据 #17585
- 更容易使用带有 Hibernate 特定属性的自动配置 EntityManagerFactoryBuilder #15318
- 当找不到唯一的 CacheManager bean 时执行失败分析 #13348
- 提供自定义 Freemarker 变量的回调 #8965
- 在配置处理器中添加对枚举默认值的支持 #7562
🐞 Bug 修复¶
- 使用 WebFlux 时,当 BindingResult 异常是 ResponseStatusException 的原因时,server.error.include-binding-errors=ALWAYS 不再有效 #41988
- PropertiesLauncher 在将 BOOT-INF/lib 中的 jar 添加到类路径时不尊重 classpath.idx #41971
- SBOM 端点的 Web 扩展在 /cloudfoundryapplication 下不可用 #41891
- 启动器的 ClassLoader 不再具有并行能力 #41874
- spring-boot-testcontainers 在 AOT 处理期间导致不必要的容器初始化 #41860
- 带有 spring-boot-testcontainers 依赖项的类路径中的
@Bean-method
中的 DynamicPropertyRegistry 失败 (3.4.0-M1) #41839 - ReactiveElasticsearchRepositoriesAutoConfiguration 应在类路径中没有 Reactor 时退让 #41681
- 当 'classifier' 设置为非默认值时,mvn spring-boot:build-image 失败 #41662
- Spring Boot Maven 插件 AOT 无法处理带有 module-info.java 的 Maven 模块 #41648
- 当发布选项为 false 时,Maven 插件配置中的 Docker publishRegistry 被验证 #41642
- 一些
@ControllerEndpoint
和@RestControllerEndpoint
基础设施未弃用 #41620 - 使用 Gradle 的新文件权限 API 的实现方式阻止了旧 API 的移除 #41608
- EnumMap 的构造函数绑定由于缺少键类型而失败 #41564
@ConditionalOnBean
匹配不是自动装配候选的 bean,导致尝试注入 bean 时出现 UnsatisfiedDependencyException #41526- 如果祖先上下文已经启用了属性,则在子上下文中启用的配置属性将被忽略 #41487