SpringBoot3.2更新聲明!

来源:https://www.cnblogs.com/JavaEdge/p/18218966
-Advertisement-
Play Games

1 從 Spring Boot 3.1 升級 1.1 參數名稱發現 Spring Boot 3.2 使用的 Spring Framework 版本不再嘗試通過解析位元組碼來推斷參數名稱。如果您在依賴註入或屬性綁定時遇到問題,請務必檢查您是否在編譯時使用了 -parameters 選項。有關更多詳細信息 ...


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 發佈!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • >>上一篇(學校上課,是耽誤我學習了。。) 2016年9月,我大二了。 自從我發現上課會耽誤我學習,只要我認為不影響我期末學分的,我就逃課了。 絕大多數課都是要簽到的,有的是老師突擊喊名字,有的是手機打卡簽到。 如果上課老師一開始就喊名字簽到,簽到環節結束,我就偷偷溜走了。 中途突擊喊名字,要是被抓 ...
  • 泊松分佈是描述單位時間間隔內隨機事件發生次數的離散概率分佈,參數λ表示平均速率。公式為 P(k) = e^(-λ) (λ^k) / k!。NumPy 的 `random.poisson()` 可生成泊松分佈數據。當 λ 很大時,泊松分佈近似正態分佈。練習包括模擬顧客到達、比較不同 λ 下的分佈及模擬... ...
  • 升鮮寶供應鏈管理系統重構版發佈(技術點:Java8、mysql8.0 uniapp、vue、android、web 框架: Vue3+Spring Boot3) ,界面功能(三) 主要功能要點: 許可權管理(組織機構、用戶管理、角色管理、崗位管理) 系統設置(菜單管理、參數管理、數據字典、定時任務、文 ...
  • 正文 好忙。今天比昨天還要忙,水都沒喝幾口。嗯,好像只喝了兩口。 今天補了一份印鑒卡,銷了一個戶,變了一個戶,弄了一大堆資料找人簽字,還順帶要解決一個押品的歷史遺留問題。 中午睡得好香,都不想起床。 終於鼓起勇氣,買下了米家的吹風機!降了整整 8 塊錢。69 塊錢拿下。 劉海變得很長了,有點想買發箍 ...
  • 本文深入探討了Kubernetes POD控制器的基礎知識、配置示例、最佳實踐,並通過一個電子商務公司的案例分析,展示瞭如何在複雜的生產環境中應用POD控制器,以優化雲服務架構。 關註【TechLeadCloud】,分享互聯網架構、雲服務技術的全維度知識。作者擁有10+年互聯網服務架構、AI產品研發 ...
  • 目錄一、背景介紹1.1 爬取目標1.2 演示視頻1.3 軟體說明二、代碼講解2.1 爬蟲採集模塊2.2 軟體界面模塊2.3 日誌模塊三、轉載聲明 一、背景介紹 1.1 爬取目標 用python開發的爬蟲採集軟體,可自動按關鍵詞抓取小紅書筆記數據。 為什麼有了源碼還開發界面軟體呢?方便不懂編程代碼的小 ...
  • 前言 大家好,我是老馬。很高興遇到你。 我們為 java 開發者實現了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何處理的,可以參考我的另一個項目: 手寫從零實現簡易版 tomcat minicat 手寫 ngin ...
  • Design OOP use C 使用c語言實現面向對象特性 以底層思維來理解面向對象。我所理解的oop:為不同的數據元提供穩定的處理邏輯框架,同時提供覆寫的可能,支持不同數據元個性化定製有限的邏輯; 多態特性: 基類實現一組通用處理邏輯介面,子類通過改變特定介面的執行邏輯實現將子類與個性化操作綁定 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...