SpringBoot3.2更新宣告!

公众号-JavaEdge發表於2024-05-28

1 從 Spring Boot 3.1 升級

1.1 引數名稱發現

Spring Boot 3.2 使用的 Spring Framework 版本不再嘗試透過解析位元組碼來推斷引數名稱。如果您在依賴注入或屬性繫結時遇到問題,請務必檢查您是否在編譯時使用了 -parameters 選項。有關更多詳細資訊,請參閱 "升級到 Spring Framework 6.x" wiki 的此部分

1.2 記錄的應用程式名稱

每當設定 spring.application.name 屬性時,預設的日誌輸出就會包含您的應用程式名稱。如更喜歡之前格式,可將 logging.include-application-namefalse

1.3 自動配置的使用者詳細資訊服務

若在類路徑存在 spring-security-oauth2-clientspring-security-oauth2-resource-serverspring-security-saml2-service-provider 中的一個或多個,而且從 3.2.2 開始,既沒有配置 spring.security.user.name 也沒有配置 spring.security.user.password,則自動配置的 InMemoryUserDetailsManager 現在將退出。同樣,在反應式應用程式中,如果在類路徑上存在 spring-security-oauth2-clientspring-security-oauth2-resource-server 中的一個或多個,而且從 3.2.2 開始,既沒有配置 spring.security.user.name 也沒有配置 spring.security.user.password,則自動配置的 MapReactiveUserDetailsService 現在也將退出。

如果您正在使用上述依賴項之一,但仍然需要在應用程式中使用 InMemoryUserDetailsManagerMapReactiveUserDetailsService,請在應用程式中定義所需的 bean,或者從 Spring Boot 3.2.2 開始,配置 spring.security.user.namespring.security.user.password 中的一個或兩個。

1.4 OTLP 跟蹤端點

management.otlp.tracing.endpoint 的預設值已被刪除。只有當 management.otlp.tracing.endpoint 有值時,才會自動配置 OtlpHttpSpanExporter bean。要恢復舊行為,請設定 management.otlp.tracing.endpoint=http://localhost:4318/v1/traces

1.5 巢狀 Jar 支援

支援 Spring Boot "Uber Jar" 載入的底層程式碼已被重寫,因為我們不再需要支援 Java 8。更新後的程式碼使用了一種新的 URL 格式,該格式更符合 JDK 的期望。之前的 URL 格式 jar:file:/dir/myjar.jar:BOOT-INF/lib/nested.jar!/com/example/MyClass.class 已被替換為 jar:nested:/dir/myjar.jar/!BOOT-INF/lib/nested.jar!/com/example/MyClass.class。更新後的程式碼還使用了 java.lang.ref.Cleaner(這是 JDK 9 的一部分)來管理資源。

我們已盡一切努力確保新程式碼在儘可能大的程度上是對之前實現的透明替換。我們預計大多數使用者甚至不會注意到這種變化。您可能會注意到變化的一個領域是,如果您直接引用了啟動器類之一,因為它們在新的預設啟動器中有新的名稱:

經典
org.springframework.boot.loader.launch.JarLauncher org.springframework.boot.loader.JarLauncher
org.springframework.boot.loader.launch.PropertiesLauncher org.springframework.boot.loader.PropertiesLauncher
org.springframework.boot.loader.launch.WarLauncher org.springframework.boot.loader.WarLauncher

但是,如果您發現新實現存在任何意外行為,我們也提供了一個回退選項,允許您使用舊程式碼。

對於 Maven 使用者,您可以將 spring-boot-plugin 配置中的 <loaderImplementation> 標籤設定為 CLASSIC。例如:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>repackage</goal>
          </goals>
          <configuration>
            <loaderImplementation>CLASSIC</loaderImplementation>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

1.6 Spring Boot 3.0 中的棄用情況

在本次釋出中,已刪除 Spring Boot 3.0 中已棄用的類、方法和屬性。升級之前,請確保您沒有呼叫已棄用的方法。

1.7 日誌關聯 ID

只要使用 Micrometer 跟蹤,Spring Boot 就會自動記錄關聯 ID。參閱更新後的文件

如果您自己配置了跟蹤 id 和 span id 的日誌記錄,例如以下內容:

logging.pattern.level=%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]

您現在可以將其刪除。應用程式名稱、跟蹤 id 和 span id 現在預設包含在內。

1.8 RestClient 支援

Spring Boot 3.2 包括對新的 RestClient 介面的支援,該介面已在 Spring Framework 6.1 中引入。此介面提供了一種類似於 WebClient 設計的函式式阻塞 HTTP API。

現有和新的應用程式可能需要考慮使用 RestClient 作為 RestTemplate 的替代方案。

詳參更新後的參考文件

1.9 RestTemplate HTTP 客戶端

當類路徑上存在 Jetty 的 HttpClient 時,Spring Boot 的 HTTP 客戶端自動檢測將配置 RestTemplateBuilder 使用 Spring Framework 6.1 中新引入的 JettyClientHttpRequestFactory

JdkClientHttpRequestFactory 的支援已新增到 ClientHttpRequestFactories。與 JettyClientHttpRequestFactory 不同,它尚未新增到自動檢測中。要使用 JdkClientHttpRequestFactory,您必須主動啟用:

@Bean
RestTemplateBuilder restTemplateBuilder(RestTemplateBuilderConfigurer configurer) {
    return configurer.configure(new RestTemplateBuilder())
        .requestFactory(
                (settings) -> ClientHttpRequestFactories.get(JdkClientHttpRequestFactory.class, settings));
}

1.10 對 JdbcClient 的支援

基於 NamedParameterJdbcTemplate 的存在,已新增了對 [JdbcClient](https://docs.spring .io/spring-boot/docs/3.2.0/reference/html//data.html#data.sql.jdbc-client) 的自動配置。如果後者是自動配置的,則會考慮 spring.jdbc.template.* 屬性。

1.11 對虛擬執行緒的支援

Spring Boot 3.2 附帶對虛擬執行緒的支援。要使用虛擬執行緒,您需要執行在 Java 21 上,並將屬性 spring.threads.virtual.enabled 設定為 true

① Servlet Web 伺服器

啟用虛擬執行緒時,Tomcat 和 Jetty 將使用虛擬執行緒進行請求處理。這意味著您處理 Web 請求的應用程式程式碼(如控制器中的方法)將在虛擬執行緒上執行。

② 使用 Spring WebFlux 的阻塞執行

當虛擬執行緒啟用時,Spring WebFlux 對阻塞執行的支援會自動配置為使用 applicationTaskExecutor bean (如果它是一個 AsyncTaskExecutor)。無論是預設情況下還是啟用虛擬執行緒時,applicationTaskExecutor 都是一個 AsyncTaskExecutor

③ 任務執行

當啟用虛擬執行緒時,applicationTaskExecutor bean 將是一個配置為使用虛擬執行緒的 SimpleAsyncTaskExecutor。任何使用應用程式任務執行器的地方,例如呼叫 @Async 方法時的 @EnableAsync、Spring MVC 的非同步請求處理以及 Spring WebFlux 的阻塞執行支援,現在都將利用虛擬執行緒。與以前一樣,任何 TaskDecorator bean 都會應用於自動配置的執行器,並且 spring.task.execution.thread-name-prefix 屬性也會應用。其他 spring.task.execution.* 屬性將被忽略,因為它們特定於基於池的執行器。

現在應用程式上下文中提供了 SimpleAsyncTaskExecutorBuilder,可用於構建 SimpleAsyncTaskExecutor。如果啟用了虛擬執行緒,SimpleAsyncTaskExecutorCustomizer bean 可用於自定義構建的 SimpleAsyncTaskExecutor。構建器將自動配置為使用它們。

④ 任務排程

當啟用虛擬執行緒時,taskScheduler bean 將是一個配置為使用虛擬執行緒的 SimpleAsyncTaskScheduler。將應用 spring.task.scheduling.thread-name-prefix 屬性和 spring.task.scheduling.simple.* 屬性。其他 spring.task.scheduling.* 屬性將被忽略,因為它們特定於基於池的排程程式。

現在應用程式上下文中提供了 SimpleAsyncTaskSchedulerBuilder,可用於構建 SimpleAsyncTaskScheduler。如果啟用了虛擬執行緒,SimpleAsyncTaskSchedulerCustomizer bean 可用於自定義構建的 SimpleAsyncTaskScheduler。構建器將自動配置為使用它們。

⑥ 使 JVM 保持活動狀態

現在有一個新屬性叫做 spring.main.keep-alive。當設定為 true 時,即使所有其他執行緒都是虛擬執行緒(或守護執行緒),JVM 也會保持活動狀態。

⑦ 特定技術整合

啟用虛擬執行緒時,以下特定技術整合適用:

  • 為 RabbitMQ 監聽器自動配置了一個虛擬執行緒執行器。
  • 為 Kafka 監聽器自動配置了一個虛擬執行緒執行器。
  • Spring Data Redis 的 ClusterCommandExecutor 將使用虛擬執行緒。
  • Spring for Apache Pulsar 將為自動配置的 ConcurrentPulsarListenerContainerFactoryDefaultPulsarReaderContainerFactory 使用 VirtualThreadTaskExector

1.12 對 JVM 檢查點/恢復的初始支援

Spring Boot 3.2 附帶對 JVM 檢查點/恢復(Project CRaC)的初始支援。有關更多詳細資訊,請參閱相關文件

1.13 SSL 捆綁包重新載入

現在可以在信任材料發生變化時自動重新載入 SSL 捆綁包。捆綁包必須選擇啟用此功能,將其 reload-on-update 屬性設定為 true。捆綁包的使用者也必須支援重新載入。

支援重新載入的使用者包括:

  • Netty Web 伺服器
  • Tomcat Web 伺服器

有關 SSL 捆綁包重新載入的更多資訊,可以在參考文件中找到。

1.14 可觀測性改進

您現在可以使用 Micrometer 的 @Timed@Counted@NewSpan@ContinueSpan@Observed 註解。如果類路徑上有 AspectJ,它們的 aspects 現在將自動配置。

Micrometer Tracing 的 ObservationHandler bean 現在自動註冊到 ObservationConfig。在 Spring Boot 3.2.0 之前,未分類的處理程式會在分類處理程式之前註冊。現在這一點已被顛倒,分類的處理程式現在會在未分類的處理程式之前註冊。有關詳細資訊,請參閱 #34399

B3 跟蹤傳播的預設格式已從 single-no-parent 更改為 single

@Scheduled 方法現在已針對可觀測性進行了檢測。

已新增了對 R2DBC 的可觀測性支援。要啟用它,請在專案中包含 io.r2dbc:r2dbc-proxy 依賴項。

① 屬性

現在有一個名為 spring.reactor.context-propagation 的新配置屬性,用於控制反應式管道中的上下文傳播。要在您的反應式管道中自動傳播觀察結果、跟蹤 id 和 span id,請將該屬性設定為 auto

現在可以透過屬性禁用以特定字首開頭的觀察結果。例如,要防止 Spring Security 報告觀察結果,請設定 management.observations.enable.spring.security=false

屬性 management.observations.key-values.* 可用於自動將低基數鍵值應用於所有觀察結果。例如,設定 management.observations.key-values.region=us-west 將向所有觀察結果新增鍵 region 和值 us-west

② OpenTelemetry

如果在上下文中找到 OpenTelemetry MeterProvider bean,它將自動註冊到 BatchSpanProcessor

OpenTelemetry 的自動配置已經改進。如果上下文中有 SdkLoggerProviderSdkMeterProvider 型別的 bean,它將自動註冊到 OpenTelemetry bean 上。此外,OpenTelemetry 的 Resource 現在作為 bean 暴露,並且有一個新的配置屬性 management.opentelemetry.resource-attributes,用於配置資源屬性。

如果您正在使用 OpenTelemetry 並希望對應用的 SpanProcessor 有更多控制,您現在可以定義一個 SpanProcessors 型別的 bean。預設情況下,所有可用的 SpanProcessor bean 都會應用。對於 OpenTelemetry 的 SpanExporter,使用 SpanExporters bean 來覆蓋預設值。預設情況下,它會應用所有可用的 SpanExporter bean。

③ Micrometer 1.12 中更廣泛的示例支援

Micrometer 1.12 包括一個擴大示例支援的功能,這需要 Prometheus 2.43 或更高版本。如果您使用的是 2.43.0 之前的 Prometheus 版本,並且您正在使用 Micrometer Tracing,請升級到 Prometheus >= 2.43.0,否則指標將不再顯示。

④ 測試中的可觀測性

在 Spring Boot 3.2 之前,當執行整合測試時,整個 Micrometer Tracing、Brave 和 OpenTelemetry 基礎設施都會被禁用。這一點已經過修改:只有最少數量的 bean 被禁用,因此不會向後端傳送任何 span(有關將被禁用的 bean 列表,請參閱 #35354)。如果您有自定義的 Brave SpanHandler 或 OpenTelemetry SpanExporter bean,請務必使用 @ConditionalOnEnabledTracing 註解對它們進行註解,這樣在執行禁用了可觀測性的整合測試時,它們就不會被建立。

如果您希望在啟用可觀測性的情況下執行整合測試,您可以在測試類上使用 @AutoConfigureObservability 註解

1.15 Docker 映象構建

預設的 CNB 構建器已升級

當使用 Maven 和 Gradle 外掛構建映象時,使用的預設 CNB 構建器已經更改。當應用### 直譯續

GraalVM 外掛到構建時,新的預設構建器是 paketobuildpacks:builder-jammy-tiny。否則,新的預設構建器是 paketobuildpacks:builder-jammy-base。有關這些構建器的更多資訊,請參閱 Paketo 文件

以前的預設構建器包含了基於 Ubuntu 18.04 的執行映像,而新的預設值包含了基於 Ubuntu 22.04 的執行映像。這意味著使用新的預設值構建的任何映像都將基於 Ubuntu 22.04。

Docker 主機配置

spring-boot:build-image Maven 目標和 bootBuildImage Gradle 任務現在使用 Docker CLI 配置檔案來確定要使用的 Docker 守護程序的主機地址和其他連線詳細資訊。有關更多資訊,請參閱 Gradle 和 [Maven](https://docs.spring.io/spring-boot /docs/3.2.0/maven-plugin/reference/htmlsingle/#build-image.docker-daemon) 外掛文件。

用於快取的繫結掛載

現在可以配置 CNB 構建器和 buildpack 使用的構建和啟動快取,以使用繫結掛載而不是命名卷。BitBucket CI 的使用者要求提供此功能,因為它們不允許從 CI 管道訪問卷。有關更多資訊和示例,請參閱 [Maven](https://docs.spring.io/spring-boot/docs/3.2.0/maven-plugin/reference/htmlsingle/#build -image.examples.caches) 和 Gradle 文件。

構建工作區配置

現在可以配置 CNB 構建器和 buildpack 使用的臨時構建工作區,以使用繫結掛載或自定義命名卷。有關更多資訊和示例,請參閱 MavenGradle 文件。

安全選項配置

現在可以自定義應用於 CNB 構建器容器的安全選項,以支援不允許使用預設 Linux 安全選項 label=disable 的 Docker 環境。有關更多資訊,請參閱 MavenGradle 文件。

對 Spring for GraphQL 的可呼叫支援

現在Spring for GraphQL 被自動配置為使用 applicationTaskExecutor。這為控制器方法返回 Callable 提供了開箱即用的支援。

其他 OAuth2 令牌驗證器

自動配置的 JwtDecoderReactiveJwtDecoder 現在將使用任何 OAuth2TokenValidator<Jwt> bean 進行令牌驗證。它們包含在配置為解碼器的驗證器的 DelegatingOAuth2TokenValidator 中。

對 ActiveMQ 的服務連線支援

已新增對 ActiveMQ 的 ServiceConnection 支援,並針對 Testcontainers 和 Docker Compose 提供了整合。該整合使用 symptoma/activemq 映象。

對 Neo4j 的 Docker Compose 支援

Spring Boot 的 Docker Compose 整合現在支援 Neo4j。您必須在 compose YAML 中配置 NEO4J_AUTH 環境變數,以禁用身份驗證(值為 none)或為 neo4j 使用者設定密碼(值為 neo4j/your-password)。

WebSocketServerSpec 配置

自動配置使用的 WebSocketServerSpec 現在可以使用 spring.rsocket.server.spec 名稱空間下的屬性進行自定義。

Neo4j AuthTokenManager

如果定義了 AuthTokenManager bean,它將用於 Neo4j 的身份驗證。這種 bean 優先於 spring.neo4j.authentication.* 屬性。如果定義了自定義 Neo4jConnectionDetails(例如用於 Testcontainers 或 Docker Compose 管理的資料庫的服務連線),則會忽略 AuthTokenManager bean。

RabbitMQ

SSL 捆綁包支援

現在可以使用 spring.rabbitmq.ssl.bundle 屬性將 RabbitMQ 連線配置為使用來自 SSL 捆綁包的信任材料。這提供了一種替代方法,而不是使用現有的 spring.rabbitmq.ssl 屬性提供 Java 金鑰庫檔案作為信任材料。

限制訊息正文大小

最新版本的 RabbitMQ Java 客戶端預設將傳入訊息的正文大小限制為 64MB。spring.rabbitmq.max-inbound-message-body-size 配置屬性已引入,用於自定義此限制。

RabbitMQ Stream 的虛擬主機支援

已新增對 RabbitMQ Stream 的虛擬主機支援。如果沒有顯式設定,RabbitMQ Stream 的虛擬主機將自動使用為 RabbitMQ 配置的虛擬主機。要為 RabbitMQ Stream 使用特定的虛擬主機,請設定 spring.rabbitmq.stream.virtual-host

Kafka

SSL 捆綁包支援

現在可以使用 spring.kafka.ssl.bundle 屬性將 Kafka 連線配置為使用來自 SSL 捆綁包的信任材料。這提供了一種替代方法,而不是使用現有的 spring.kafka.ssl 屬性提供 Java 金鑰庫檔案作為信任材料。

JMS 會話

已引入新屬性用於配置自動配置的 JmsTemplate 建立的會話:

  • spring.jms.template.session.acknowledge-mode
  • spring.jms.template.session.transacted

類似地,還引入了 spring.jms.listener.session.transacted 屬性,用於自動配置的 JmsMessageListenerContainer

為與這些新屬性保持一致,請注意,現有的 spring.jms.listener.acknowledge-mode 屬性已被棄用,並引入了### 直譯續

spring.jms.listener.session.acknowledge-mode 作為替代。

Oracle UCP 資料來源上的連線驗證

已刪除了 Oracle UCP 資料來源上連線驗證的預設值。在 3.2.0-RC1 之前,預設情況下啟用了連線驗證,現在不再是這種情況。如果您需要連線驗證,請將配置屬性 spring.datasource.oracleucp.validate-connection-on-borrow 設定為 true

testAndDevelopmentOnly Gradle 配置

除了 developmentOnly,Spring Boot 的 Gradle 外掛現在還建立了一個 testAndDevelopmentOnly 配置。與 developmentOnly 不同,此新配置中的依賴項將包含在測試編譯和執行時類路徑中。它主要供那些在[開發時使用 Testcontainers](https://docs.spring.io/spring-boot/docs/3.2.0/reference/html/features.html#features.testing.testcontainers .at-development-time) 的應用程式使用。

其他

除了上述更改之外,還有許多小的調整和改進,包括:

  • 現在可以使用配置屬性 spring.jackson.datatype.enum.spring.jackson.datatype.jsonnode. 分別啟用和禁用 Jackson 的 EnumFeatureJsonNodeFeature 中宣告的功能。
  • 現在可以透過使用 Provider 為其他構建資訊屬性設定延遲值。
  • 事務管理器自定義現在適用於任何型別的 TransactionManager,而不僅僅是 PlatformTransactionManager
  • 任何 TransactionExecutionListener bean 現在都會新增到自動配置的事務管理器中。
  • 當嵌入式 WebServer 啟動時記錄的埠資訊已得到改進和統一。
  • 新增加的屬性 spring.servlet.multipart.strict-servlet-compliance 用於設定是否僅對 multipart/form-data 請求使用多部分處理。
  • 當歡迎頁面的處理程式收到無效的 Accept 頭時,已減少日誌記錄,並會退回到接受所有 MIME 型別。
  • 已新增 RestClientBuilderConfigurer,可用於將 Spring Boot 的預設設定應用於 RestClient.Builder
  • restTemplateBuilderConfigurer bean 不再退出定義了使用者 bean。如果您之前有自己的 restTemplateBuilderConfigurer bean,請將其刪除。
  • 已新增一個屬性,可用於配置 Jetty 伺服器的最大連線數。
  • 已新增一個新屬性,可用於在使用 PEM SSL 捆綁包時驗證金鑰。
  • 以程式設計方式建立 PemSslStoreBundle 時,現在可以提供金鑰庫密碼。
  • 如果未明確設定 service.name,現在將使用 spring.application.name 作為 OpenTelemetry 的 service.name
  • 已新增一個新屬性,可用於配置 OTLP 登錄檔中匯出指標的基本 TimeUnit
  • 現在有了 OTLP 指標和跟蹤的連線詳細資訊支援。如果使用 Testcontainers 或 Docker Compose 與 otel/opentelemetry-collector-contrib 映象,將自動建立連線詳細資訊 bean。
  • 已新增對使用 Wavefront 時的 CSP 身份驗證的支援。
  • 一個新屬性 flyway.postgresql.transactional-lock 可用於配置 Flyway 對 PostgreSQL 的事務鎖定使用。
  • 新增了對 Kafka MessageListenerContainer changeConsumerThreadName 屬性的支援。
  • 自動配置 Function<MessageListenerContainer, String> bean 到 Kafka MessageListenerContainer 的 threadNameSupplier
  • 已引入新的 @ConditionalOnThreading 註解,以幫助自動配置虛擬執行緒相關的問題。
  • 新增了對 RabbitMQ 容器 forceStop 屬性的支援。
  • 基於 WebClient 的 Zipkin 傳送器現在會遵守透過配置屬性設定的超時。有關詳細資訊,請參閱 #36264
  • 當在啟用了 AOT 模式但構建中沒有進行 AOT 處理的情況下啟動應用程式時,錯誤訊息現在更加明確。
  • 在使用 GraalVM 時,現在自動提供了 messages.propertiesmessages_*.properties 的資源提示。
  • 現在提供了 Kotlin 序列化的依賴項管理。
  • Awaitility (org.awaitility:awaitility) 現在是 spring-boot-starter-test 的一部分。
  • 在使用 @JdbcTest@DataJpaTest 的測試中,自動配置的 JdbcClient bean 現在可用。
  • 在自動配置 MockMvc 時,現在使用它們的註冊 bean 的分派器型別和初始化引數註冊過濾器。
  • 現在可以並行初始化 Testcontainers。為此,請將 spring.testcontainers.beans.startup 設定為 parallel
  • 支援 spring.kafka.template.observation-enabled 屬性,以支援 Micrometer 觀察。

3.2.0廢除的

OkHttp 3 的支援已被棄用,有利於 OkHttp 4

  • spring-boot:runspring-boot:startspring-boot:test-run Maven 目標的 directories 屬性已被棄用,有利於 additionalClasspathElements

  • 定義在 LoggingSystemPropertiesLogbackLoggingSystemProperties 中的大多數常量已被棄用,改為使用列舉值。

  • ClientHttpRequestFactorySettingsRestTemplateBuilder 中啟用請求緩衝的支援已被棄用。雖然 API 以棄用的形式保留,但配置它將不會產生任何效果,這與 Spring Framework 6.1 中的類似更改一致。

  • 使用 context.initializer.classes 環境屬性註冊額外的 ApplicationContextInitializer 已被棄用,改為以程式設計方式或在 spring.factories 中註冊每個代理。

  • 使用 context.listener.classes 環境屬性註冊額外的 ApplicationListener 已被棄用,改為以程式設計方式或在 spring.factories 中註冊每個代理。

  • 由擴充套件程式管理的 Flyway 屬性已移動到專用名稱空間。因此,flyway.oracle* 屬性已移動到 flyway.oracle.*。同樣,spring.flyway.sql-server-kerberos-login-file 已移動到 spring.flyway.sqlserver.kerberos-login-file

  • InfluxDB 的支援已被棄用,有利於新的 InfluxDB Java 客戶端及其自己的 Spring Boot 整合。

  • 配置屬性 management.otlp.metrics.export.resource-attributes 已被棄用,有利於新的 management.opentelemetry.resource-attributes

  • TaskExecutorBuilder 已被棄用,有利於 ThreadPoolTaskExecutorBuilder

  • TaskSchedulerBuilder 已被棄用,有利於 ThreadPoolTaskSchedulerBuilder

  • 配置屬性 spring.jms.listener.concurrency 的替代品是 spring.jms.listener.min-concurrency

  • 配置屬性 spring.jms.listener.acknowledge-mode 的替代品是 spring.jms.listener.session.acknowledge-mode

  • PlatformTransactionManagerCustomizer 的替代品是 TransactionManagerCustomizer

  • TransactionManagerCustomizers(Collection<? extends PlatformTransactionManagerCustomizer<?>>) 的替代品是 TransactionManagerCustomizers#of(Collection<? extends TransactionManagerCustomizer<?>>)

  • 不再推薦使用 DelegatingApplicationContextInitializerDelegatingApplicationListener,因為基於屬性的初始化不再推薦。

  • PemSslStoreBundle 中的一些過時的建構函式以及 PemSslStoreDetails 中的 certificate 訪問器已被棄用。

  • TaskExecutorCustomizer 已被棄用,有利於 ThreadPoolTaskExecutorCustomizer

  • TaskSchedulerBuilder 已被棄用,有利於 ThreadPoolTaskSchedulerBuilder

  • TaskSchedulerCustomizer 已被棄用,有利於 ThreadPoolTaskSchedulerCustomizer

  • NettyWebServer 中的一些過時的建構函式已被棄用

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

相關文章