Spring Boot 3.4 正式釋出,結構化日誌!

公众号-JavaEdge發表於2024-11-26

1 從 Spring Boot 3.3 升級到 3.4

1.1 RestClient 和 RestTemplate

新增對 RestClientRestTemplate 自動配置的支援,可用 Reactor Netty 的 HttpClient 或 JDK 的 HttpClient。支援的客戶端優先順序:

  • Apache HTTP Components (HttpComponentsClientHttpRequestFactory)
  • Jetty Client (JettyClientHttpRequestFactory)
  • Reactor Netty 的 HttpClient (ReactorClientHttpRequestFactory)
  • JDK 的 HttpClient (JdkClientHttpRequestFactory)
  • 簡單的 JDK HttpURLConnection (SimpleClientHttpRequestFactory)

若類路徑沒有 HTTP 客戶端庫,預設可能用 JdkClientHttpRequestFactory,而非之前的 SimpleClientHttpRequestFactory。可以透過設定 spring.http.client.factory 來選擇特定客戶端,支援的值包括 http-componentsjettyreactorjdksimple

所有五個客戶端預設會遵循重定向。如需禁用此行為,可以將 spring.http.client.redirects 設定為 dont-follow

1.2 Apache HTTP Components 和 Envoy

Apache HTTP Components 的 HttpClient 在 HTTP/1.1 的 TLS 升級預設行為有所改變。雖然大多數代理伺服器可以正確處理升級,但使用 Envoy 或 Istio 時可能會遇到問題。

如果需要恢復以前的行為,可用新的 ClientHttpRequestFactoryBuilder。定義一個 HttpComponentsClientHttpRequestFactoryBuilder 並按以下方式自定義:

@Bean
public HttpComponentsClientHttpRequestFactoryBuilder httpComponentsClientHttpRequestFactoryBuilder() {
    return ClientHttpRequestFactoryBuilder.httpComponents()
            .withDefaultRequestConfigCustomizer((builder) -> builder.setProtocolUpgradeEnabled(false));
}

1.3 配置屬性的 Bean 驗證

之前,當一個 @ConfigurationProperties 類標註了 @Validated 並透過 Bean Validation(如 Hibernate Validator)實現進行驗證時,其巢狀屬性會在繫結時被驗證,無論是否使用 @Valid

Spring Boot 3.4 開始,驗證行為與 Bean Validation 規範一致。驗證從 @ConfigurationProperties 註解的類開始,並僅在巢狀屬性對應的欄位標註了 @Valid 時才進行級聯驗證。

升級時,請檢查使用了 Bean Validation 約束的 @ConfigurationProperties 類,並在需要對巢狀屬性進行級聯驗證的地方新增 @Valid

1.4 基於 Bean 的條件

@ConditionalOnBean@ConditionalOnMissingBean@Bean 方法中使用並設定了 annotation 屬性時,其行為有所更改。兩者仍然預設使用 @Bean 方法的返回型別作為匹配的預設型別。然而,從 Spring Boot 3.4 開始,如果設定了 annotation,此預設值將不會被使用。如果需要恢復以前的行為,請同時指定一個與 @Bean 方法返回型別一致的 valueannotation

1.5 優雅關機

嵌入式 Web 伺服器(Jetty、Reactor Netty、Tomcat 或 Undertow)的優雅關機功能現已預設啟用。如需恢復之前的立即關機行為, server.shutdownimmediate

1.6 Paketo Tiny Builder 用於構建 OCI 映象

在使用 Maven 的 spring-boot:build-image 目標為 JVM 應用程式構建 OCI 映象時,預設的 Cloud Native Buildpacks 構建器已從 paketobuildpacks/builder-jammy-base 更改為 paketobuildpacks/builder-jammy-java-tiny。這將生成更小的映象。但由於 tiny 構建器不包含 shell,因此可能無法適用於需要透過啟動指令碼執行的應用程式。有關自定義構建器的詳細資訊,請參閱 Maven 文件

1.7 使用 Testcontainers 定義動態屬性

透過將 DynamicPropertyRegistry 注入到 @Bean 方法中來定義動態屬性的功能已被棄用,現在預設會導致失敗。替代方法是實現一個單獨的 @Bean 方法,返回一個 DynamicPropertyRegistrar,此方法應注入屬性值來源的容器。這種方式解決了一些容器生命週期問題,並確保屬性值來源的容器在屬性被使用之前已經啟動。

如果仍希望注入 DynamicPropertyRegistry(需承擔可能的生命週期問題),可以將 spring.testcontainers.dynamic-property-registry-injection 設定為 warnallow。前者會記錄警告但允許注入,後者則會完全恢復 Spring Boot 3.3 的行為。

1.8 @AutoConfigureTestDatabase 與容器的整合

@AutoConfigureTestDatabase 註解現在會自動檢測資料庫是否來源於容器。如果是,則無需再新增 replace=Replace.NONE

如需恢復舊的行為,可以在註解中設定 replace=Replace.AUTO_CONFIGURED

1.9 控制 Actuator 端點的訪問許可權

啟用和禁用端點的支援已被重新設計,替換為更細粒度的訪問控制模型。新的模型不僅支援禁用端點(訪問級別為 none)和完全啟用端點(訪問級別為 unrestricted),還支援只允許端點操作的“只讀”訪問(訪問級別為 read-only)。

以下屬性已被棄用:

  • management.endpoints.enabled-by-default
  • management.endpoint.<id>.enabled

其替代屬性為:

  • management.endpoints.access.default
  • management.endpoint.<id>.access

同樣,@Endpoint 註解中的 enableByDefault 屬性已被棄用,新的 defaultAccess 屬性取代了它。

作為更改的一部分,enabled-by-default 的應用現在更加一致,並與是否使用了 @ConditionalOnEnabledEndpoint 無關。如果升級後失去了某個端點的訪問許可權,可以將 management.endpoint.<id>.access 設定為 read-onlyunrestricted,或者將 management.endpoint.<id>.enabled 設定為 true,以使端點重新可用。

另外,還引入了一個新屬性,用於控制 Actuator 端點訪問級別的上限:

  • management.endpoints.access.max-permitted

此屬性限制所有配置的訪問級別。例如,如果 management.endpoints.access.max-permitted 設定為 read-only,而 management.endpoint.loggers.access 設定為 unrestricted,則日誌記錄端點僅允許只讀訪問。

1.10 Cloud Foundry 中 @ConditionalOnAvailableEndpoint 暴露的更改

在使用 @ConditionalOnAvailableEndpoint 註解時,原本使用的列舉值 EndpointExposure.CLOUD_FOUNDRY 已被棄用,建議改用 EndpointExposure.WEB。對於典型的 Spring Boot 應用,這一更改通常不會有影響。但如果你定義了自定義的 Cloud Foundry 特定 Actuator 端點 bean,則需要將條件更新為使用 EndpointExposure.WEB

1.11 HtmlUnit 4.3

HtmlUnit 已升級至 4.3。本次升級中,依賴座標從 net.sourceforge.htmlunit:htmlunit 變更為 org.htmlunit:htmlunit,包名也從 com.gargoylesoftware.htmlunit. 更新為 org.htmlunit.。升級時,請相應調整構建配置和程式碼匯入。

1.12 Selenium HtmlUnit 4.22

Selenium HtmlUnit 已更新至 4.22。本次升級中,依賴座標從 org.seleniumhq.selenium:htmlunit-driver 變更為 org.seleniumhq.selenium:htmlunit3-driver。升級時,請相應調整構建配置。

1.13 WebJars 定位器整合

為了更快的啟動時間和更高效的 WebJars 資源解析,你需要在構建檔案(如 pom.xml)中將依賴從 org.webjars:webjars-locator-core 更新為 org.webjars:webjars-locator-lite。這兩項依賴由 Spring Boot 統一管理。需要注意,Spring 對 org.webjars:webjars-locator-core 的支援已被棄用,並將在未來版本中移除。有關詳細資訊,請參閱 參考文件的相關章節

1.14 OkHttp 依賴管理的移除

Spring Boot 不再直接依賴 OkHttp,因此也不再對其版本進行管理。如果你的應用程式包含 OkHttp 依賴,請更新構建以選擇適合需求的 OkHttp 版本。

1.15 原生映象中的 Netty

Spring Boot 3.4 使用的 Netty 版本尚未完全被 Native Build Tools 提供的 GraalVM 可達性後設資料支援。要在原生映象中正常使用 Netty,需手動升級 GraalVM 可達性後設資料版本。

對於 Maven:

<plugin>
	<groupId>org.graalvm.buildtools</groupId>
	<artifactId>native-maven-plugin</artifactId>
	<configuration>
		<metadataRepository>
			<version>0.3.14</version>
		</metadataRepository>
	</configuration>
</plugin>

1.16 @MockBean 和 @SpyBean 的棄用

@MockBean@SpyBean 註解已被棄用,建議使用 Spring Framework 提供的 @MockitoBean@MockitoSpyBean。新的註解功能與 Spring Boot 提供的註解功能並不完全一致。例如,@MockitoBean 尚不支援在 @Configuration 類中使用,你可能需要在測試類中直接註解欄位。

1.17 Spring Boot 3.2 的棄用項

Spring Boot 3.2 中標記為棄用並計劃在 3.4 中移除的類、方法和屬性現已被移除。在升級之前,請確保沒有呼叫這些棄用的功能。

1.18 最低要求更改

2 新功能和亮點

2.1 結構化日誌

新增了對結構化日誌的支援,包括 Elastic Common Schema(ecs)、Graylog 擴充套件日誌格式(gelf)和 Logstash(logstash)的內建支援。可以透過設定 logging.structured.format.fileecsgelflogstash 來啟用結構化檔案日誌記錄。類似地,可以透過設定 logging.structured.format.console 來啟用結構化控制檯日誌記錄。

有關更多資訊,包括如何定義自定義格式,請參閱參考文件

@Fallback Bean

@ConditionalOnSingleCandidate 現在支援 @Fallback Bean。如果存在一個主 Bean,或者沒有主 Bean 但存在一個非回退的單一候選 Bean,則該條件會匹配。

定義附加 Bean

在型別匹配時,基於 Bean 的條件現在會忽略非預設候選 Bean。透過宣告某個 Bean 為非預設候選(使用 @Bean(defaultCandidate=false)),現在可以定義一個特定型別的 Bean,而不會導致相同型別的自動配置 Bean 退出。這簡化了配置,例如在同一個應用程式中使用 兩個 DataSource Bean兩個 EntityManagerFactory Bean

ClientHttpRequestFactory 構建器

新增了 ClientHttpRequestFactoryBuilder 介面,可以為特定技術建立 ClientHttpRequestFactory 例項。構建器支援對底層元件進行細粒度自定義,並提供一致的方式來應用通用設定。

以下構

建器可以透過介面的靜態工廠方法建立:

  • Apache HTTP Components(ClientHttpRequestFactoryBuilder.httpComponents()
  • Jetty Client(ClientHttpRequestFactoryBuilder.jetty()
  • Reactor Netty 的 HttpClientClientHttpRequestFactoryBuilder.reactor()
  • JDK 的 HttpClientClientHttpRequestFactoryBuilder.jdk()
  • 簡單的 JDK HttpURLConnectionClientHttpRequestFactoryBuilder.simple()

有關更多詳細資訊,包括如何透過配置屬性應用通用設定,請參閱參考文件

可觀察性改進

應用程式分組

新增了 spring.application.group 屬性,用於對應用程式進行分組,例如將屬於某個業務部門的多個應用程式歸類。當設定此屬性時,它也會出現在日誌訊息中。此行為可透過 logging.include-application.group 屬性控制。應用程式分組資訊還會自動新增到 OpenTelemetry 的 Resource 中。

OTLP

支援透過 gRPC 傳輸傳送 OTLP span。要啟用此功能,請將新配置屬性 management.otlp.tracing.transport 設定為 grpc。該屬性預設為 http。此外,還新增了相應的服務連線支援。

新增的 management.otlp.logs 配置屬性可用於自動配置 OpenTelemetry 的 OtlpHttpLogRecordExporterSdkLoggerProvider

其他可觀察性更新

ProcessInfoContributor 現在還會顯示堆和非堆記憶體的使用資訊。

新增的 management.otlp.tracing.export.enabledmanagement.wavefront.tracing.export.enabledmanagement.zipkin.tracing.export.enabled 屬性,可用於更細粒度地啟用或禁用跟蹤匯出。

對 MockMvc 的 AssertJ 支援

當類路徑中存在 AssertJ 時,將自動配置 MockMvcTesterMockMvcTester 提供了一種流暢的 API,用於定義請求和斷言。它可以在任何可以注入 MockMvc 的地方使用。

有關更多詳細資訊,請參閱 Spring Framework 參考文件的專用章節

Spring Pulsar

Spring Boot 現在提供了配置預設租戶和名稱空間的屬性。這些預設值適用於主題 URL 未完全限定時生產或消費訊息的情況。可以透過 spring.pulsar.defaults.topic.tenantspring.pulsar.defaults.topic.namespace 配置這些屬性,或者定義自己的 PulsarTopicBuilder bean。如果需要禁用預設值,將 spring.pulsar.defaults.topic.enabled=false

新增了 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 變數現可透過定義一個或多個型別為 FreeMarkerVariablesCustomizer 的 bean 來自定義。自定義器將按定義的順序(如果有)依次呼叫。

嵌入式 ActiveMQ Classic Broker 的支援

由於 ActiveMQ Classic 重新支援嵌入式 Broker,自動配置已更新以支援此功能。

需要注意,與 Spring Boot 2.7.x 不同,ActiveMQ starter 僅限於客戶端。如果需要使用嵌入式 Broker,需要將 org.apache.activemq:activemq-broker 新增到應用程式中。

配置後設資料

註解處理器現在支援檢測 Enum 型別的預設值。如果你為自定義屬性手動新增了後設資料來提供預設值,請確保將其移除。

棄用和替換自動配置類

為簡化自動配置的演進,Spring Boot 引入了對自動配置類的棄用和替換支援。替換可以在新的 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.replacements 檔案中宣告。更多詳情請參閱參考文件

虛擬執行緒

如果啟用了虛擬執行緒,以下元件將預設使用虛擬執行緒:

  • OtlpMeterRegistry
  • Undertow Web 伺服器

映象構建改進

Spring Boot 預設使用 paketobuildpacks/builder-jammy-java-tiny 構建器。此構建器原生支援 ARM 和 x64 平臺。

Maven外掛新增了 trustBuilder 選項,用於控制 CNB 生命週期的呼叫方式,以提高安全性。預設信任的構建器包括 Paketo 專案、Heroku 和 Google 的構建器。詳情請參閱 Maven文件。

新增的 imagePlatform 選項允許為不同於主機平臺的作業系統和架構構建映象,前提是主機平臺支援模擬其他系統(

例如,使用 Apple Silicon 的 Mac 上的 Rosetta 模擬 AMD 架構)。詳情請參閱 Maven文件。

Docker Compose 改進

Docker Compose 現在支援多個 Docker Compose 配置檔案。

命令列引數

新屬性 spring.docker.compose.start.argumentsspring.docker.compose.stop.arguments 可以用來指定在啟動和停止服務時傳遞給 Docker Compose 子命令的額外命令列引數。新增了 spring.docker.compose.arguments 屬性,用於向 Docker Compose 傳遞引數。

更新支援

  • Postgres POSTGRES_HOST_AUTH_METHOD=trust 環境變數 現在被支援。
  • 透過分別使用 redis/redis-stackredis/redis-stack-server 容器映象,新增了對 Redis Stack 和 Redis Stack Server 的支援。
  • 透過使用 grafana/otel-lgtm 容器映象,新增了對 Grafana LGTM 的支援。
  • 新增了對 Hazelcast 的支援(使用 HazelcastConnectionDetails)。
  • 新增了對 OTLP 日誌記錄的支援。

Testcontainers 改進

  • 新增了對 org.testcontainers.kafka.KafkaContainer 的支援。
  • 透過分別使用 redis/redis-stackredis/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 包,現在有一個新端點顯示 SSL 資訊(有效期、發行者、主題等),可在 /actuator/info 下獲取。該端點還會顯示即將過期的證書,以提醒您需要儘快輪換證書。新增了名為 management.health.ssl.certificate-validity-warning-threshold 的配置屬性來配置閾值。

還新增了一個新的健康檢查來監控 SSL 證書。如果證書無效,它將狀態設定為 OUT_OF_SERVICE

/actuator/scheduledtasks 端點中的額外資訊

/scheduledtasks Actuator 端點 現在公開了有關計劃任務的額外後設資料,例如 "下一次預定執行時間" 和 "上次執行時間、狀態和異常"。

3 依賴升級

Spring Boot 3.4 遷移到了幾個 Spring 專案的新版:

  • Spring AMQP 3.2
  • Spring Authorization Server 1.4
  • Spring Batch 5.2
  • Spring Data 2024.1
  • Spring Framework 6.2
  • Spring HATEOAS 2.4
  • Spring Integration 6.4
  • Spring Kafka 3.3
  • Spring Pulsar 1.2
  • Spring Security 6.4
  • Spring Session 3.4

許多第三方依賴項也已更新,其中一些更值得注意的包括:

  • Apache Http Client 5.4
  • AssertJ 3.26
  • Artemis 2.37
  • Elasticsearch Client 8.15
  • Flyway 10.20
  • Gson 2.11
  • Hibernate 6.6
  • HtmlUnit 4.5.0
  • JUnit Jupiter 5.11
  • Jackson 2.18.0
  • Jedis 5.2
  • Kafka 3.8
  • Lettuce 6.4
  • Liquibase 4.29
  • Log4j 2.24
  • HtmlUnit 4.3
  • MariaDB 3.4
  • Micrometer 1.14
  • Micrometer Tracing 1.4
  • Mockito 5.13
  • MongoDB 5.2.0
  • MySQL 9.1
  • OpenTelemetry 1.41
  • Oracle Database 23.4
  • R2DBC MySQL 1.3
  • Rabbit AMQP Client 5.22
  • Rabbit Stream Client 0.18.0
  • Reactor 2024.0
  • Selenium 4.25
  • Testcontainers 1.20.3
  • XMLUnit 2.10

雜項

除了上述變化外,還包括許多小的調整和改進:

  • 現在可以使用 Customizer<Liquibase> bean 在使用 Liquibase 之前對其進行自定義。
  • 現在可以透過定義 JCachePropertiesCustomizer bean 來自定義用於建立 JCache CacheManager 的屬性。
  • 現在可以透過定義名為 viewNameTranslator 的 bean 來自定義 Spring MVC 使用的 RequestToViewNameTranslator
  • 現在可以使用 LettuceClientOptionsBuilderCustomizer bean 來自定義 Lettuce 的 ClientOptions。對於整個 LettuceClientConfiguration 的更廣泛配置,繼續使用 LettuceClientConfigurationBuilderCustomizer
  • 可以使用新的自定義器 ProxyConnectionFactoryCustomizer 來自定義 R2DBC 的 ProxyConnectionFactory
  • 如果發生 Spring Security 登出,現在會釋出一個審計事件。
  • 現在可以使用新的屬性 spring.mail.ssl.* 透過 SSL 包配置 JavaMailSender 上的 TLS。
  • 現在可以使用新的 spring.gson.strictness 屬性配置 GSON 的嚴格性。
  • 現在可以在 JavaBean 風格的配置屬性的欄位上使用 @Name 來自定義其名稱。
  • 當從另一個 DataSource 派生時,DataSourceBuilder 現在可以使用源 DataSource 的 URL 確定驅動程式類名稱,如果它不公開驅動程式類名稱。
  • 就緒和存活健康探針 現在在 Cloud Foundry 平臺上自動啟用。
  • 可以使用新屬性 spring.application.version 讀取和設定應用程式版本。屬性的預設值取自清單中的 Implementation-Version
  • 自動配置的 EntityManagerFactoryBuilder 也定義了原生(例如 Hibernate)屬性。
  • 即使沒有使用 @EnableScheduling,Spring Integration 的 TaskScheduler 現在也支援虛擬執行緒。
  • @ConditionalOnAvailableEndpoint 現在有一個 value 別名用於 endpoint
  • 新增了一個新的配置屬性 spring.data.web.pageable.serialization-mode,用於配置 Spring Data Web 的序列化模式。
  • 使用 SpringApplication.from(…) 語法時,現在可以指定要啟用的額外配置檔案。
  • Spring Boot 外掛不再在構建包環境中設定 BP_NATIVE_IMAGE: true
  • 註冊的 @ConfigurationProperties beans 現在尊重 @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-timeoutmanagement.otlp.tracing.connect-timeout 以配置與 OTLP 收集器的連線超時。
  • 新增了透過 OTLP 傳輸日誌時的 gRPC 傳輸支援。
  • 如果在構建過程中繫結了容器中使用的目錄,現在會顯示警告。
  • 如果使用 --enable-sbom=sbom 構建原生映象,現在會自動檢測到這個 SBOM。
  • DatabaseDriver 列舉現在支援 ClickHouse JDBC 驅動程式。
  • 可以使用新屬性 management.logging.export.enabled
  • management.otlp.logging.export.enabled 禁用日誌匯出。
    • 可以透過定義帶有 @BatchTaskExectuor 註解的 TaskExecutor bean 來自定義 Spring Batch 使用的 TaskExecutor
    • Spring Session 自動配置現在支援響應式 Web 應用程式中的 indexed 儲存庫型別。
    • 如果未配置池掛起並且建立了檢查點,HikariCheckpointRestoreLifecycle 現在會記錄一條警告。

3.4 版本 Spring Boot 的棄用

  • 棄用 spring.gson.lenient,改用 spring.gson.strictness
  • 棄用 @MockBean@SpyBean,改用 Spring Framework 的 @MockitoBeanMockitoSpyBean
  • 棄用 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-defaultmanagement.endpoint.<id>.enabled,改用 management.endpoints.access.defaultmanagement.endpoint.<id>.access
  • 棄用 @Endpoint 上的 enableByDefault,改用 defaultAccess

關注我,緊跟本系列專欄文章,咱們下篇再續!

作者簡介:魔都架構師,多家大廠後端一線研發經驗,在分散式系統設計、資料平臺架構和AI應用開發等領域都有豐富實踐經驗。

各大技術社群頭部專家博主。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。

負責:

  • 中央/分銷預訂系統效能最佳化
  • 活動&券等營銷中臺建設
  • 交易平臺及資料中臺等架構和開發設計
  • 車聯網核心平臺-物聯網連線平臺、大資料平臺架構設計及最佳化
  • LLM Agent應用開發
  • 區塊鏈應用開發
  • 大資料開發挖掘經驗
  • 推薦系統專案

目前主攻市級軟體專案設計、構建服務全社會的應用系統。

參考:

  • 程式設計嚴選網

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章