北京各大网站推广服务公司,wap网站建设教程,在线小游戏网页版,广中路街道网站建设#x1f9d1; 博主简介#xff1a;CSDN博客专家#xff0c;历代文学网#xff08;PC端可以访问#xff1a;https://literature.sinhy.com/#/literature?__c1000#xff0c;移动端可微信小程序搜索“历代文学”#xff09;总架构师#xff0c;15年工作经验#xff0c;… 博主简介CSDN博客专家历代文学网PC端可以访问https://literature.sinhy.com/#/literature?__c1000移动端可微信小程序搜索“历代文学”总架构师15年工作经验精通Java编程高并发设计Springboot和微服务熟悉LinuxESXI虚拟化以及云原生Docker和K8s热衷于探索科技的边界并将理论知识转化为实际应用。保持对新技术的好奇心乐于分享所学希望通过我的实践经历和见解启发他人的创新思维。在这里我希望能与志同道合的朋友交流探讨共同进步一起在技术的世界里不断学习成长。 技术合作请加本人wx注明来自csdnforeast_sea Spring Boot 3.4.0 发行革新与突破的里程碑
Spring Boot 3.4.0 于2024-11-21正式发布
引言
本次Spring Boot 3.4.0 的发布带来了一系列令人期待和关注的重要特性显著提升了开发体验与应用性能本次带来的更新核心的几点如下
一、日志与配置优化
结构化日志记录支持多种格式如 ECS、GELF 和 Logstash通过logging.structured.format.file与logging.structured.format.console属性便捷开启使日志规整有序便于分析处理极大助力于分布式系统的监控与问题排查。配置元数据升级注释处理器可检测Enum默认值减少手动元数据配置让配置过程更加智能高效降低出错概率。
二、功能组件增强
Spring Pulsar 拓展可配置默认租户和命名空间新增PulsarContainerFactoryCustomizer等接口自定义容器工厂还能对客户端并发等进行精细调控如设置spring.pulsar.client.threads.io与spring.pulsar.client.threads.listener使 Pulsar 在应用中集成更灵活强大。Couchbase 身份验证多元化除基本用户名密码方式新增客户端证书认证满足更高安全需求场景为数据安全保驾护航。FreeMarker 变量自定义能通过FreeMarkerVariablesCustomizer bean 灵活定制自动配置的 FreeMarker 的Configuration对象使用的变量增强模板引擎的个性化适配能力。
三、测试与可观察性提升
测试框架改进 AssertJ 对 MockMvc 支持自动配置MockMvcTester以流畅 API 定义请求和断言注入MockMvc处即可使用优化测试代码编写体验。测试容器方面支持org.testcontainers.kafka.KafkaContainer、Redis Stack 相关容器以及org.testcontainers.grafana.LgtmStackContainer等拓宽测试覆盖范围。 可观察性飞跃 应用程序分组功能spring.application.group属性实现应用归类在日志和 OpenTelemetry Resource中体现方便管理与监控资源。OTLP 功能拓展支持 gRPC 传输发送跨度management.otlp.logs下属性助力日志导出配置ProcessInfoContributor展示内存信息并新增跟踪导出控制属性全方位提升可观察性数据管理的精细度。
四、Actuator 功能升级
可插拔暴露器可扩展 Spring Boot 以灵活方式暴露 Actuator 端点借助EndpointExposureOutcomeContributor接口实现便于与不同平台集成如类似 Cloud Foundry 支持的拓展。SSL 信息与健康检查/actuator/info下新增 SSL 信息端点展示有效期等内容并可预警证书过期同时新增健康检查监控 SSL 证书状态保障通信安全。任务端点信息丰富/actuator/scheduledtasks端点公开更多元数据如下次计划执行时间和上次执行详情便于深入了解任务执行状况。
从Spring Boot 3.3升级
RestClient和RestTemplate
已添加对自动配置RestClient和RestTemplate以使用Reactor Netty的HttpClient或JDK的HttpClient的支持。按照优先顺序现在支持的客户端如下
Apache HTTP ComponentsHttpComponentsClientHttpRequestFactoryJetty ClientJettyClientHttpRequestFactoryReactor Netty HttpClientReactorClientHttpRequestFactoryJDK HttpClientJdkClientHttpRequestFactory简单JDK HttpURLConnectionSimpleClientHttpRequestFactory
值得注意的是如果类路径上没有HTTP客户端库这可能会导致使用JdkClientHttpRequestFactory而以前会使用SimpleClientHttpRequestFactory。可以通过设置spring.http.client.factory选择特定的客户端。支持的值为http-components、jetty、reactor、jdk和simple。
所有五个客户端默认都会跟随重定向。要禁用此行为请将spring.http.client.redirects设置为dont-follow。
Apache HTTP Components和Envoy
Apache HTTP Components在与HTTP/1.1 TLS升级相关的HttpClient中更改了默认值。大多数代理服务器可以毫无问题地处理升级但是您可能会在使用Envoy或Istio时遇到问题。
如果需要恢复以前的行为可以使用新的ClientHttpRequestFactoryBuilder。定义一个HttpComponentsClientHttpRequestFactoryBuilder并应用以下自定义
Bean
public HttpComponentsClientHttpRequestFactoryBuilder httpComponentsClientHttpRequestFactoryBuilder() {return ClientHttpRequestFactoryBuilder.httpComponents().withDefaultRequestConfigManagerCustomizer((builder) - builder.setProtocolUpgradeEnabled(false));
}配置属性的Bean验证
以前当使用Hibernate Validator等Bean验证实现验证带有Validated注释的ConfigurationProperties类时无论是否使用Valid都会在绑定嵌套属性时执行验证。在Spring Boot 3.4中验证现在遵循Bean验证规范的行为。验证从带有ConfigurationProperties注释的类开始并且仅在相应字段带有Valid注释时才级联到嵌套属性。
升级时请检查带有Bean验证约束的ConfigurationProperties类。在需要验证级联到嵌套属性的地方添加Valid。
基于Bean的条件
在Bean方法上使用ConditionalOnBean和ConditionalOnMissingBean并且设置了annotation属性时其行为已更改。和以前一样这两个条件都将使用Bean方法的返回类型作为要匹配的类型的默认值。以前如果设置了name、type或value则不使用此默认值。从Spring Boot 3.4开始如果设置了annotation也不会使用此默认值。要恢复以前的行为请同时指定value即Bean方法的返回类型和annotation。
优雅停机
嵌入式Web服务器Jetty、Reactor Netty、Tomcat或Undertow的优雅停机现在默认启用。如果需要恢复以前的行为请将server.shutdown设置为immediate。
用于构建OCI镜像的Paketo tiny Builder
使用Maven spring-boot:build-image目标或Gradle bootBuildImage任务为JVM应用程序构建OCI镜像时默认使用的Cloud Native Buildpacks构建器已从paketobuildpacks/builder-jammy-base更改为paketobuildpacks/builder-jammy-java-tiny。这应该会生成更小的镜像。tiny构建器不包括外壳因此对于需要启动脚本来运行应用程序的应用程序可能不起作用。有关自定义构建器的信息请参阅Maven或Gradle文档。
带有Testcontainers的动态属性
通过注入DynamicPropertyRegistry定义动态属性的支持已被弃用并且现在默认情况下尝试这样做会失败。不要注入DynamicPropertyRegistry而是实现一个单独的返回DynamicPropertyRegistrar的Bean方法。这个单独的bean方法应该注入将从中获取属性值的容器。这解决了一些容器生命周期问题并确保在使用属性之前从中获取属性值的容器已经启动。
如果希望继续注入DynamicPropertyRegistry冒着遇到上述生命周期问题的风险请将spring.testcontainers.dynamic-property-registry-injection设置为warn或allow。前者将记录警告同时允许使用注入的DynamicPropertyRegistry。后者将默默地允许使用注入的DynamicPropertyRegistry完全恢复Spring Boot 3.3的行为。
AutoConfigureTestDatabase与容器
AutoConfigureTestDatabase注释现在尝试检测数据库是否来自容器。如果要将该注释与容器数据库一起使用这应该消除添加replaceReplace.NONE的需要。
如果需要恢复旧行为请在注释上设置replaceReplace.AUTO_CONFIGURED。
控制对Actuator端点的访问
启用和禁用端点的支持已被重新设计用更细粒度的访问模型取代了之前提供的开/关支持。新模型除了支持禁用端点访问权限为none和完全启用端点访问权限为unrestricted之外还支持仅允许对端点操作进行read-only访问。
以下属性已被弃用
management.endpoints.enabled-by-defaultmanagement.endpoint.id.enabled
它们的替代品是
management.endpoints.access.defaultmanagement.endpoint.id.access
同样Endpoint上的enableByDefault属性已被弃用新的defaultAccess属性取代了它。
作为这些更改的一部分enabled-by-default现在始终如一地应用并且与ConditionalOnEnabledEndpoint的使用无关。如果在升级时失去对端点的访问权限请将management.endpoint.id.access设置为read-only或unrestricted或者将management.endpoint.id.enabled设置为true以使端点再次可访问。
此外引入了一个新属性允许操作员控制对Actuator端点的允许访问级别 management.endpoints.access.max-permitted
此属性限制了可能为端点配置的任何访问权限。例如如果management.endpoints.access.max-permitted设置为read-only而management.endpoint.loggers.access设置为unrestricted则仅允许对日志记录器端点进行只读访问。
Cloud Foundry条件端点暴露
与ConditionalOnAvailableEndpoint一起使用的EndpointExposure.CLOUD_FOUNDRY枚举值已被弃用取而代之的是EndpointExposure.WEB。典型的Spring Boot应用程序可能不会受到此更改的影响但是如果您有自定义的特定于Cloud Foundry的Actuator端点bean则应更新条件以使用EndpointExposure.WEB。
HtmlUnit 4.3
HtmlUnit已升级到4.3。随着此次升级依赖坐标从net.sourceforge.htmlunit:htmlunit更改为org.htmlunit:htmlunit包名从com.gargoylesoftware.htmlunit更改为org.htmlunit。升级时请相应地更新构建配置和导入。
Selenium HtmlUnit 4.22
Selenium HtmlUnit已更新到4.22。随着此次升级依赖坐标从org.seleniumhq.selenium:htmlunit-driver更改为org.seleniumhq.selenium:htmlunit3-driver。升级时请相应地更新构建配置。
WebJars定位器集成
为了加快启动时间并高效解析WebJars资产您需要更新pom.xml/build.gradle以依赖org.webjars:webjars-locator-lite而不是org.webjars:webjars-locator-core这两个依赖项均由Spring Boot管理。请注意Spring中对org.webjars:webjars-locator-core的支持现已弃用并将在未来版本中删除。请参阅此功能的参考文档部分。
OkHttp依赖管理已移除
Spring Boot不再依赖OkHttp因此不再管理其版本。如果您的应用程序有OkHttp依赖项请更新其构建以使用满足其需求的OkHttp版本。
Netty在原生镜像中
Spring Boot 3.4使用的Netty版本尚未得到Native Build Tools中包含的GraalVM可达性元数据的支持。要使Netty在原生镜像中工作您需要手动升级GraalVM可达性元数据版本。
对于Maven
plugingroupIdorg.graalvm.buildtools/groupIdartifactIdnative-maven-plugin/artifactIdconfigurationmetadataRepositoryversion0.3.14/version/metadataRepository/configuration
/plugin对于Gradle
graalvmNative {metadataRepository {version 0.3.14}
}Spring Boot 3.2中的弃用内容
在Spring Boot 3.2中被弃用并标记为在3.4中删除的类、方法和属性已在本版本中删除。在升级之前请确保您没有调用弃用的方法。
最低要求更改
Gradle
Gradle 7.5、8.0、8.1、8.2和8.3不再受支持。现在需要Gradle 7.x7.6.4或更高版本或Gradle 8.x8.4或更高版本。
新特性和值得注意的地方
结构化日志记录
引入了对结构化日志记录的支持内置支持Elastic Common Schemaecs、Graylog Extended Log Formatgelf和Logstashlogstash。要启用结构化文件日志记录请将logging.structured.format.file设置为ecs、gelf或logstash。类似地要启用结构化控制台日志记录请设置logging.structured.format.console。
要了解有关Spring Boot对结构化日志记录的支持包括如何定义自定义格式请参阅参考文档。
Fallback Beans
ConditionalOnSingleCandidate现在支持Fallback beans。如果有单个主bean或者如果没有主bean但有单个非回退bean则条件将匹配。
定义其他Beans
在类型匹配时基于bean的条件现在将忽略任何不是默认候选者的bean。通过声明一个bean不是默认候选者使用Bean(defaultCandidatefalse)现在可以定义一个自动配置类型的bean而不会导致相同类型的自动配置bean退出。这减少了在同一应用程序中使用两个DataSource bean或两个EntityManagerFactory bean等所需的配置。
ClientHttpRequestFactory构建器
添加了一个新的ClientHttpRequestFactoryBuilder接口允许您为特定技术构建ClientHttpRequestFactory实例。构建器允许对底层组件进行细粒度的自定义以及一种一致的方式来应用常见设置。
可以使用接口的静态工厂方法为特定库创建以下构建器
Apache HTTP ComponentsClientHttpRequestFactoryBuilder.httpComponents()Jetty ClientClientHttpRequestFactoryBuilder.jetty()Reactor Netty HttpClientClientHttpRequestFactoryBuilder.reactor()JDK HttpClientClientHttpRequestFactoryBuilder.jdk()简单JDK HttpURLConnectionClientHttpRequestFactoryBuilder.simple()
有关更多详细信息包括如何使用配置属性应用常见设置请参阅更新的参考文档。
可观察性改进
应用程序组
新的spring.application.group属性可用于将应用程序分组在一起例如如果它们都属于某个业务单元或一个更大的应用程序安排。设置此属性时它也会包含在日志消息中。此行为可以使用属性logging.include-application.group进行控制。应用程序组也会自动添加到OpenTelemetry Resource中。
OTLP
现在可以通过gRPC传输发送OTLP跨度。为此请将新的配置属性management.otlp.tracing.transport设置为grpc。此属性默认为http。也为此添加了服务连接支持。
management.otlp.logs下的新属性可用于自动配置OpenTelemetry的OtlpHttpLogRecordExporter和SdkLoggerProvider。
其他可观察性更新
ProcessInfoContributor现在还显示有关堆和非堆使用情况的内存信息。
新的management.otlp.tracing.export.enabled、management.wavefront.tracing.export.enabled和management.zipkin.tracing.export.enabled属性现在可以更精细地启用或禁用跟踪导出。
AssertJ对MockMvc的支持
当AssertJ在类路径上时提供对MockMvcTester的自动配置。MockMvcTester允许您使用流畅的API定义请求和断言。它可以注入到任何有MockMvc的地方。
有关更多详细信息请参阅Spring Framework参考文档的专用部分。
Spring Pulsar
现在提供了用于配置默认租户和命名空间的配置属性。当使用不完全限定的主题URL消费或生产消息时将应用默认值。使用spring.pulsar.defaults.topic.tenant和spring.pulsar.defaults.topic.namespace配置属性进行配置或者定义自己的PulsarTopicBuilder bean。设置spring.pulsar.defaults.topic.enabledfalse可禁用默认值。
添加了一个新的PulsarContainerFactoryCustomizer接口以支持对自动配置的PulsarContainerFactory进行自定义。
spring.pulsar.consumer.subscription.name配置属性现在适用于自动配置的Pulsar监听器容器。
引入了两个新的配置属性用于配置Pulsar客户端的并发
spring.pulsar.client.threads.io控制用于处理与代理的连接的线程数。spring.pulsar.client.threads.listener控制用于消息监听器的线程数。
最后新的spring.pulsar.listener.concurrency属性可用于控制自动配置的Pulsar消息监听器容器的并发。
Couchbase身份验证
现在可以使用客户端证书对Couchbase集群进行身份验证作为基本用户名和密码身份验证的替代方法。有关更多详细信息请参阅参考文档。
FreeMarker
现在可以自定义自动配置的FreeMarker的Configuration对象使用的FreeMarker变量。为此定义一个或多个类型为FreeMarkerVariablesCustomizer的bean。这些bean将按照定义的顺序如果有被调用。
带有ActiveMQ Classic的嵌入式代理支持
由于ActiveMQ Classic现在再次支持嵌入式代理自动配置已更新以支持它。
请注意与Spring Boot 2.7.x相反ActiveMQ启动器仅为客户端。要使用嵌入式代理应将org.apache.activemq:activemq-broker添加到您的应用程序中。
配置元数据
注释处理器现在可以检测Enum的默认值。如果您添加了手动元数据来提供自定义属性的值请确保将其删除。
弃用和替换自动配置类
为了更轻松地演进自动配置引入了对弃用和替换自动配置类的支持。可以在新的META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.replacements文件中声明替换。要了解更多信息请参阅参考文档。
虚拟线程
如果启用了虚拟线程以下组件现在将使用它们
OtlpMeterRegistryUndertow Web服务器
镜像构建改进
Spring Boot现在默认使用paketobuildpacks/builder-jammy-java-tiny。此构建器开箱即支持ARM和x64平台。
在用于构建OCI镜像的Maven和Gradle插件中添加了一个trustBuilder选项。此选项控制如何调用CNB生命周期在使用来自不可信源的构建器时提供更高的安全性。默认情况下来自Paketo项目、Heroku和Google的构建器是受信任的。有关信息请参阅Maven或Gradle文档。
在用于构建OCI镜像的Maven和Gradle插件中添加了一个imagePlatform选项。此选项可用于指定为运行CNB构建包而拉取的任何CNB构建器、运行时和构建包镜像的操作系统和架构。当主机平台支持模拟其他操作系统/架构时例如在使用Apple硅芯片的Mac上使用Rosetta模拟ARM主机上的AMD架构可以使用此选项为与主机平台不同的操作系统和架构构建镜像。有关更多信息请参阅Maven或Gradle文档。
Docker Compose改进
多配置文件支持Docker Compose现在支持多个Docker Compose配置文件。命令行参数改进 新增spring.docker.compose.start.arguments和spring.docker.compose.stop.arguments属性可用于指定启动和停止服务时传递给Docker Compose子命令的额外命令行参数。新增spring.docker.compose.arguments属性用于向Docker Compose传递参数。
更新的支持
支持Postgres的POSTGRES_HOST_AUTH_METHODtrust环境变量。分别使用redis/redis-stack和redis/redis-stack-server容器镜像添加了对Redis Stack和Redis Stack Server的支持。使用grafana/otel-lgtm容器镜像添加了对Grafana LGTM的支持。增加了对Hazelcast使用HazelcastConnectionDetails的支持。支持OTLP日志记录。
测试容器改进
支持org.testcontainers.kafka.KafkaContainer。分别使用redis/redis-stack和redis/redis-stack-server容器镜像添加了对Redis Stack和Redis Stack Server的支持。支持org.testcontainers.grafana.LgtmStackContainer。支持Hazelcast使用HazelcastConnectionDetails。支持OTLP日志记录。支持RedisContainer。
Actuator
可插拔的Actuator暴露器
现在可以扩展Spring Boot以可插拔的方式暴露Actuator端点。可以实现新的EndpointExposureOutcomeContributor接口来影响ConditionalOnAvailableEndpoint条件。此扩展应使其更容易提供与现有Cloud Foundry支持类似的其他平台集成。
SSL信息和健康检查
如果使用SSL捆绑包现在在/actuator/info下有一个新的端点显示SSL信息有效期、颁发者、主题等。此端点还会显示即将过期的证书以提醒您需要尽快轮换它们。有一个新的配置属性management.health.ssl.certificate-validity-warning-threshold可用于配置阈值。还添加了一个新的健康检查来监控SSL证书。如果证书无效它将状态设置为OUT_OF_SERVICE。
/actuator/scheduledtasks端点的额外信息
/scheduledtasks Actuator端点现在公开有关计划任务的额外元数据例如“下一次计划执行时间”和“上次执行时间、状态和异常”。
依赖升级
Spring Boot 3.4迁移到了多个Spring项目的新版本
Spring AMQP 3.2Spring Authorization Server 1.4Spring Batch 5.2Spring Data 2024.1Spring Framework 6.2Spring HATEOAS 2.4Spring Integration 6.4Spring Kafka 3.3Spring Pulsar 1.2Spring Security 6.4Spring Session 3.4
众多第三方依赖也已更新其中一些更值得注意的如下
Apache Http Client 5.4AssertJ 3.26Artemis 2.37Elasticsearch Client 8.15Flyway 10.20Gson 2.11Hibernate 6.6HtmlUnit 4.5.0JUnit Jupiter 5.11Jackson 2.18.0Jedis 5.2Kafka 3.8Lettuce 6.4Liquibase 4.29Log4j 2.24HtmlUnit 4.3MariaDB 3.4Micrometer 1.14Micrometer Tracing 1.4Mockito 5.13MongoDB 5.2.0MySQL 9.1OpenTelemetry 1.41Oracle Database 23.4R2DBC MySQL 1.3Rabbit AMQP Client 5.22Rabbit Stream Client 0.18.0Reactor 2024.0Selenium 4.25Testcontainers 1.20.3XMLUnit 2.10
杂项
除了上述更改之外还有许多小的调整和改进包括
现在可以使用CustomizerLiquibase bean在Liquibase使用之前对其进行自定义。用于创建JCache CacheManager的属性现在可以通过定义JCachePropertiesCustomizer bean进行自定义。Spring MVC使用的RequestToViewNameTranslator现在可以通过定义名为viewNameTranslator的bean进行自定义。Lettuce的ClientOptions现在可以使用LettuceClientOptionsBuilderCustomizer bean进行自定义。要对整个LettuceClientConfiguration进行更广泛的配置请继续使用LettuceClientConfigurationBuilderCustomizer。新的自定义器ProxyConnectionFactoryCustomizer可用于自定义R2DBC ProxyConnectionFactory。如果发生Spring Security注销现在会发布一个审计事件。JavaMailSender上的TLS现在可以使用新的属性spring.mail.ssl.*通过SSL捆绑包进行配置。GSON的严格性现在可以使用新的spring.gson.strictness属性进行配置。Name现在可以用于JavaBean风格的配置属性的字段上以自定义其名称。当从另一个DataSource派生时如果源DataSource不公开驱动程序类名DataSourceBuilder现在可以使用源DataSource的URL确定驱动程序类名。在Cloud Foundry平台上现在自动启用活跃度和就绪度健康探测。新的属性spring.application.version可用于读取和设置应用程序版本。该属性的默认值取自清单的Implementation-Version。自动配置的EntityManagerFactoryBuilder也定义了原生例如Hibernate属性。Spring Integration的TaskScheduler现在即使没有使用EnableScheduling也能感知虚拟线程。ConditionalOnAvailableEndpoint现在有一个value别名用于endpoint。添加了一个新的配置属性spring.data.web.pageable.serialization-mode用于配置Spring Data Web的序列化模式。当使用SpringApplication.from(…)语法时现在可以指定要激活的其他配置文件。Spring Boot插件不再在构建包环境中设置BP_NATIVE_IMAGE: true。注册的ConfigurationProperties bean现在尊重DependsOn、Description、Fallback、Lazy、Primary、Scope和Role注释。Log4j2的MultiFormatStringBuilderFormattable现在在结构化日志记录中受支持。添加了一个新的配置属性spring.jms.listener.max-messages-per-task用于配置监听器在一个任务中处理的最大消息数。默认安全配置现在公开映射到其他路径的健康组。此外两个EndpointRequest类现在都提供toAdditionalPaths(…)方法。会话cookie的分区属性现在可以通过属性设置。添加了一个新的server.jetty.max-form-keys属性用于自定义Jetty的最大表单键数。添加了新的属性management.otlp.logging.connect-timeout和management.otlp.tracing.connect-timeout用于配置到OTLP收集器的连接超时。当通过OTLP发送日志时添加了对gRPC传输的支持。当绑定构建过程中构建包使用的容器中的目录时现在会显示警告。当使用--enable-sbomsbom构建原生镜像时现在会自动检测此SBOM。DatabaseDriver枚举现在支持ClickHouse JDBC驱动程序。新的属性management.logging.export.enabled和management.otlp.logging.export.enabled可用于禁用日志导出。Spring Batch使用的TaskExecutor现在可以通过定义一个带有BatchTaskExectuor注释的TaskExecutor bean进行自定义。Spring Session自动配置现在在反应式Web应用程序中支持indexed存储库类型。如果未配置池暂停且创建了检查点HikariCheckpointRestoreLifecycle将记录警告。
Spring Boot 3.4中的弃用内容
spring.gson.lenient改用spring.gson.strictness。MockBean和SpyBean分别改用Spring Framework的MockitoBean和MockitoSpyBean。org.springframework.boot.ResourceBanner#getApplicationVersion(Class?)改用spring.application.version属性。org.springframework.boot.SpringApplication#logStartupInfo(boolean)改用org.springframework.boot.SpringApplication#logStartupInfo(ConfigurationApplicationContext)。org.springframework.boot.logging.logback.ApplicationNameConverter改用org.springframework.boot.logging.logback.EnclosedInSquareBracketsConverter。org.springframework.boot.actuate.autoconfigure.endpoint.expose.EndpointExposure#CLOUD_FOUNDRY改用org.springframework.boot.actuate.autoconfigure.endpoint.expose.EndpointExposure#WEB。org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingConnectionDetails#getUrl()改用getUrl(Transport)。org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryAutoConfiguration改用org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryTracingAutoConfiguration。OtlpAutoConfiguration改用OtlpTracingAutoConfiguration。management.endpoints.enabled-by-default和management.endpoint.id.enabled分别改用management.endpoints.access.default和management.endpoint.id.access。Endpoint上的enableByDefault改用defaultAccess。