日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot 2.1 版本变化[翻译]

發布時間:2023/12/10 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot 2.1 版本变化[翻译] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是烤鴨:

? 最近在把低版本的springboot項目升級,正好翻譯了下springboot 2.1-2.3 版本的更新日志。

? Github 原文:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes

? 2.2 版本變化:https://blog.csdn.net/Angry_Mills/article/details/113116126

? 2.3 版本變化:https://blog.csdn.net/Angry_Mills/article/details/113116195

推薦版本: 2.1.18.RELEASE

從Spring Boot 2.0升級

Spring Framework 5.1

Spring Boot 2.1使用Spring Framework 5.1。有關可能影響您的應用程序的任何更改,請參考其升級指南。

Bean覆寫

默認情況下,Bean覆蓋已被禁用,以防止意外覆蓋Bean。如果您要依賴覆蓋,則需要將設置spring.main.allow-bean-definition-overriding為true。

自動配置排除

現在,排除項將被一致地應用,而不僅僅是本地應用。這適用于上定義的任何排斥@EnableAutoConfiguration,@SpringBootApplication,@ImportAutoConfiguration或spring.autoconfigure.exclude財產。

執行器“信息”和“健康”端點安全

Ifspring-security在類路徑上沒有任何安全配置,/info并且/health現在公開以確保一致性。如果您spring-security在類路徑上,但是不提供任何安全性配置,則需要顯式保護它們。

Servlet路徑

該server.servlet.path物業已移至spring.mvc.servlet.path。如果您以編程方式依賴該屬性來知道DispatcherServlet請使用的路徑,請DispatcherServletPath改用。

@WebMvcTest和@WebFluxTest安全配置

用戶配置現在自動包含在Web Slice測試中。@WebMvcTest尋找WebSecurityConfigurerBean,而@WebFluxTest尋找ServerHttpSecurityBean。

記錄優化

debug當使用Web應用程序(Spring MVC或Spring WebFlux)時,Spring Framework 5.1重新訪問了日志輸出。如果您嘗試調試應用程序,并且想要恢復Spring Boot 2.0樣式的日志記錄,則應將以下內容添加到您的application.properties:

logging.level.web =debug

您可能還需要設置spring.http.log-request-details=true登錄實際要求的細節。默認情況下,此屬性是false因為它有可能公開敏感信息。

Narayana JTA支持

Narayana支持已被刪除,以支持與Narayana版本更加一致的官方支持。如果您使用spring-boot-starter-jta-narayana,則新坐標如下:

<dependency><groupId> me.snowdrop </groupId><artifactId> narayana-spring-boot-starter </artifactId><version> 2.0.1 </version> </dependency>

查看文檔以獲取更多詳細信息。

ActiveMQ池

如果您使用activemq-pool,則在此發行版中已刪除了支持,pooled-jms以便在支持JMS 2.0的同時提供相同的功能。您可以按以下方式更新構建:

<dependency><groupId> org.messaginghub </groupId><artifactId> pooled-jms </artifactId> </dependency>

HttpPutFormContentFilter

HttpPutFormContentFilter已不推薦使用FormContentFilter。spring.mvc.formcontent.putfilter.enabled不再定義該屬性。如果您正在使用此功能,請更新為spring.mvc.formcontent.filter.enabled。

OAuth2客戶端配置

spring.security.oauth2.client.registration的結構已在單個樹中進行了修改,而不是具有authorizationcode和clientcredentials 替代的命名空間。

Micrometer ‘all’ SLA Handling

management.metrics.distribution.sla錯誤地描述了所有的meterID可以被用來設置一個SLA的所有指標。鑒于儀表可能因儀表類型而異,因此無法正確實現此功能。

InfluxDB HttpClient自定義

以前,聲明一個OkHttpClient.Builder足以自定義InfluxDB使用的客戶端。為了確保隔離這些定制,請定義一個InfluxDbOkHttpClientBuilderProvider。

Maven插件

該finalName屬性不再可自定義以與標準Maven插件的行為保持一致。

如果您要自定義repackage目標,那么現在repackage必須指定主要執行的ID ,請參閱更新的示例。

Srping.Version POM屬性

POM中spring.version定義的屬性spring-boot-dependencies已重命名。要覆蓋Spring Framework版本,您現在應該spring-framework.version改為使用屬性。除非絕對必要,否則我們通常建議您堅持使用托管框架版本。

刪除’spring.provides’文件

初學者可以聲明一個,META-INF/spring.provides以便IDE可以確定其提供的依賴項。掃描啟動程序POM以獲取它聲明的直接依賴關系就足夠了。如果您負責第三方啟動程序并聲明了此文件,則可以將其刪除。

Thymeleaf Spring Security Extras

Thymeleaf的Spring Security Extras模塊的依賴關系管理和自動配置已從thymeleaf-extras-springsecurity4更改為thymeleaf-extras-springsecurity5。如果您使用的是模塊,則應更新pom.xml或build.gradle依賴thymeleaf-extras-springsecurity5。

Json Simple

json-simple不再提供的依賴管理,并且JsonParser使用它的實現也已刪除。

Jersey 1

不再支持Jersey 1。請升級到Jersey 2。

Hibernate EhCache支持

如果您hibernate-ehcache使用EhCache 2作為Hibernate的二級緩存提供程序,則從Hibernate 5.3開始不推薦使用。

Endpoint ID names

如果您已經開發了自己的執行器@Endpointbean,則應確保它們遵循Spring Boot 2.1中引入的更嚴格的命名規則。具體來說,ID應該僅是字母數字,并且必須以字母開頭(EndpointId有關完整的詳細信息,請參閱類文檔)。

如果您使用-或.字符,則Spring Boot 2.1將記錄警告并要求您遷移到正確的格式。

Lombok

Spring Boot 2.1已從1.16.x升級到Lombok1.18.x。在1.18中,默認情況下,Lombok將不再生成私有的無參數構造函數。可以通過lombok.noArgsConstructor.extraPrivate=true在lombok.config配置文件中進行設置來啟用它。有關Lombok變更的更多信息,請參閱其變更日志。

Java Persistence API依賴性

作為升級到Hibernate 5.3的一部分,托管的Java Persistence API依賴項已從更改org.hibernate.javax.persistence:hibernate-jpa-2.1-api為javax.persistence:javax.persistence-api。如果您正在使用spring-boot-starter-data-jpa或依賴于通過Hibernate傳遞的API,那么您將不受此更改的影響。

JpaProperties

特定于Hibernate的屬性已從移入JpaProperties名為的單獨類HibernateProperties。如果您正在使用JpaProperties.getHibernateProperties(HibernateSettings),則現在應同時注入HibernateProperties和JpaProperties以確定屬性:

Map<String, Object> properties = hibernateProperties.determineHibernateProperties( jpaProperties.getProperties(), new HibernateSettings());

所有嵌入式Web服務器上的最大HTTP標頭大小一致

現在,默認的最大HTTP標頭大小在四個受支持的嵌入式Web服務器(Jetty,Netty,Tomcat和Undertow)上是一致的,為8KB。大小可以使用server.max-http-header-size屬性進行自定義。

第三方庫升級

Spring Boot 2.1建立在Spring Framework 5.1之上,并需要它。

我們已盡可能升級到其他第三方jar的最新穩定版本。此版本中一些值得注意的依賴項升級包括:

  • Tomcat 9
  • Undertow 2
  • Hibernate 5.3
  • JUnit 5.2
  • Micrometer 1.1

Java 11支持

Spring Boot 2.1仍與Java 8兼容,但現在也支持Java11。我們已配置了持續集成,以針對最新的Java 11版本構建和測試Spring Boot。

DataSize支持

如果屬性需要以字節或類似的方便單位表示大小,則可以公開org.springframework.util.unit.DataSize屬性。與DurationSpring Boot 2.0中引入的支持類似,數據大小支持一種簡單的格式(即10MB10 MB)和元數據支持。所有相關的配置屬性已更新為使用新類型。

上下文ApplicationConversionService支持

在ApplicationConversionService現在默認與注冊Environment和BeanFactory所創造SpringApplication。這使您可以將應用程序轉換器直接用于核心Spring Framework項目,例如@Value注釋:

@Value("${my.duration:10s}") private Duration duration;

Profile Expression

配置文件匹配已得到改進,以支持表達式格式。例如production & (us-east | eu-central)表示匹配,如果production profile是激活的,那么us-east 或 eu-central 都是激活的。

概要文件表達式可以按如下方式使用:

  • 使用啟用組件 @Profile
  • 加載多配置文件YAML文檔
  • 使用以下方式啟用Logback配置 <springProfile>

任務執行

Spring Boot現在為提供自動配置ThreadPoolTaskExecutor。如果使用@EnableAsync,TaskExecutor則可以刪除自定義項,而使用spring.task.execution命名空間中可用的自定義項。ThreadPoolTaskExecutor使用可以輕松創建自定義TaskExecutorBuilder。

任務調度

與新的任務執行支持類似,Spring Boot自動配置一個ThreadPoolTaskSchedulerwhen @EnableScheduling。可以使用spring.task.scheduling名稱空間來自定義任務計劃程序。TaskSchedulerBuilder默認情況下,A也可用。

Logging Groups

可以定義記錄器組,以允許一次性配置相關記錄器。例如,您可以聲明一個tomcat組,該組允許您配置org.apache.catalina,org.apache.coyote并org.apache.tomcat使用單個鍵記錄器:

#定義組 logging.group.tomcat = org.apache.catalina,org.apache.coyote,org.apache.tomcat#使用組(可能在其他配置文件中) logging.level.tomcat = TRACE

方便web和sql團體提供外的開箱。有關詳細信息,請參見參考指南。

Maven插件

使用系統屬性和環境變量的專用選項對指定參數進行了改進。也可以重新包裝和更換classified神器,看到了更新的文檔中的classifier屬性。

JPA設置的引導模式

Spring Data Lovelace為存儲庫引入了一種“引導模式”。Spring Boot公開了一個屬性,可以設置該屬性來控制JPA存儲庫的boostrap模式。例如,要推遲JPA存儲庫的初始化,只需將以下內容添加到您的配置中:

spring.data.jpa.repositories.bootstrap-mode = deferred

將模式設置為deferred或時lazy,JPA設置在單獨的線程中進行。

Kafka Streams支持

現在,在聲明依賴項時為Kafa Streams提供自動配置org.apache.kafka:kafka-streams。有關詳細信息,請參閱更新的Spring Boot文檔和Spring Kafka文檔。

Spring Data JDBC支持

Spring Data包括對JDBC的存儲庫支持,并將自動為上的方法生成SQL CrudRepository。當必要的依賴項位于類路徑上時,Spring Boot將自動配置Spring Data的JDBC存儲庫。可以將它們添加到您的項目中,而只需依賴于spring-boot-starter-data-jdbc。

有關Spring Data JDBC的完整詳細信息,請參考參考文檔。

JMS ConnectionFactory緩存

自動配置ConnectionFactory默認情況下使用進行緩存,CachingConnectionFactory直到啟用池選項或spring.jms.cache.enabled將其設置為為止false。合并選項也已擴展到Artemis(請參閱參考資料spring.jms.artemis.pool.*)。

Elasticsearch REST客戶端

作為Jest的替代選項,命名空間的RestClient和的自動配置RestHighLevelClient提供了可配置選項spring.elasticsearch.rest.*。

JUnit 5

所有@…Test注釋都帶有meta注釋,@ExtendWith(SpringExtension.class)因此,如果您使用的是JUnit 5,則可以刪除該設置的冗余部分。SpringBoot還使用maven-surefire-plugin不需要使用任何自定義設置即可使用JUnit 5的版本。

安全

OAuth2 WebFlux支持

添加了對WebFlux OAuth2登錄的支持。使用OpenID Connect提供程序可以更輕松地配置OpenID Connect提供程序issuer-uri,它將斷言為它的發行者標識符。

OAuth2資源服務器支持

如果您spring-security-oauth2-resource-server在類路徑中,則只要指定了JWK Set URI,Spring Boot就可以設置OAuth2資源服務器。例如:

spring.security.oauth2.resource.jwt.jwk.set-uri = https://example.com/oauth2/default/v1/keys

MVC和WebFlux應用程序都支持此功能。

非Web OAuth應用程序

現在,InMemoryReactiveClientRegistrationRepository無論我們使用哪種應用程序類型,我們都提供了一個自動配置的Bean,因此可以更輕松地編寫非Web OAuth應用程序。如果您正在編寫不使用嵌入式Web服務器的應用程序(例如CLI應用程序),則現在可以直接注入并使用配置的注冊存儲庫。

執行器端點

緩存端點

一個新的/actuator/caches端點列出了可用的CacheManager實例及其各自的帶有基本元數據的緩存。有關更多詳細信息,請參見API。

Spring集成圖端點

如果您使用的是Spring Integration,則可以在處公開所有Spring Integration組件的圖形表示/actuator/integrationgraph。請參閱API以獲取更多詳細信息。

健康終點

一個HealthIndicatorRegistrybean是現在可以添加和刪除HealthIndicator在運行時。該health端點也得到了改進,如果需要查詢特定指標。例如/actuator/health/db僅執行“ db” HealthIndicator。請參閱API以獲取更多詳細信息。

提供HealthIndicator了Apache Cassandra的反應式。

Micrometer

通用千分尺標簽

通用標簽可以聲明性地應用于所有儀表,如以下示例所示:

management.metrics.tags.region=us-east-1 management.metrics.tags.stack=prod

上面的示例在所有儀表上分別添加region和stack標記,其值分別為us-east-1和prod。

對新指標的自動配置支持

指標覆蓋范圍已得到改進,包括:

  • Hibernate metrics
  • Spring Framework’s WebClient
  • Kafka consumer metrics
  • Log4j2 metrics
  • Jetty server thread pool metrics
  • Server-side Jersey HTTP request metrics

對新注冊表的自動配置支持

在類路徑上時,以下度量標準注冊表現在已自動配置:

  • AppOptics
  • Humio
  • KariosDB

此外,已添加了對Prometheus推送網關的支持。

其他直方圖配置屬性

可以使用newmanagement.metrics.distribution.maximum-expected-value.*和management.metrics.distribution.minimum-expected-value.*屬性來控制每米基準值的最大和最小期望值。

其他改動

除了上面列出的更改之外,還進行了許多小的調整和改進,包括:

  • 可以使用來配置Jackson可見性spring.jackson.visiblity.*。
  • WebServiceTemplate使用自動配置創建一個更容易WebServiceTemplateBuilder。
  • 錯誤頁面顯示使用Devtools時的堆棧跟蹤。
  • 不再需要導出虛擬對象ResourceConfig以啟用Jersey支持。
  • JNDI查找已得到改進resourceRef,默認情況下啟用。
  • 可RetryTemplate通過訪問來自Rabbit基礎架構的定制RabbitRetryTemplateCustomizer。
  • RabbitTemplate現在可以配置默認的接收隊列
  • Tomcat的最大吞咽大小現在可以使用屬性進行配置
  • 現在支持帶有Reactor Netty Server的HTTP / 2。
  • Kafka自動配置現在支持errorHandler transactionManager和afterRollbackProcessorbean。
  • 添加了對全局生成唯一JMX ObjectName的支持(而不是將此功能限制為Actuator Endpoints)
  • 現在對配置屬性元數據進行了排序,不贊成使用的項目最后出現。
  • 現在的withDetails方法Health.Builder還接受Map。
  • ReactiveJwtDecoder現在,當您定義了發行者URL時,將自動配置反應式。
  • BackgroundPreinitializer如果spring.backgroundpreinitializer.ignore設置了系統屬性,可以禁用
  • HiddenHttpMethodFilter 可以使用屬性禁用
  • JAP入門POM現在可以在Java 9+上開箱即用
  • 現在,在com.mongodb.client.MongoClient定義bean(以及更常見的com.mongodb.MongoClient)時,MongoDB自動配置將退出。
  • 您現在可以選擇將Jetty RS用作WebClient的HTTP驅動程序
  • spring.quartz命名空間中添加了幾個配置選項。
  • @ConditionalOnEnabledEndpoint 可以在任何組件上使用(例如,僅端點需要的組件,如果端點被禁用,則不應創建)。
  • @ConditionalOnMissingServletFilterFilterRegistration在測試是否Filter缺少bean時可以尊重bean
  • @WebMvcTest也自動配置Spring Data REST(例如,支持Sort和Pageable請求參數)。
  • 切片測試現在都具有一個properties屬性,可以根據需要一致地自定義環境
  • 支持增加了多個 RestDocsMockMvcConfigurationCustomizer
  • 安全配置現已應用于WebTestClient。有關測試安全端點的更多信息,請參考Spring Security參考文檔的相關部分。
  • WebExceptionHandlers 支持 @WebFluxTest
  • @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 現在可以為管理服務器生成一個單獨的隨機端口。
  • 現在,自動配置排除項將始終應用。

Spring Boot 2.1中的棄用

  • setConnectTimeout(int)并且setReadTimeout(int)已被不贊成使用類似方法所取代Duration。
  • 設置數據大小的方法,int(廢棄)已替換為 DataSize。
  • management.endpoints.jmx.unique-names 不贊成使用 spring.jmx.unique-names
  • 為了支持使用Spring Security的注釋,不推薦使用secureon屬性。@AutoConfigureMockMvc@WithMockUser
  • RestTemplateBuilder.basicAuthorization已不推薦使用basicAuthentication。
  • REQUEST_WRAPPER_FILTER_MAX_ORDER在AbstractFilterRegistrationBean并FilterRegistrationBean已被替換OrderedFilter.REQUEST_WRAPPER_FILTER_MAX_ORDER。

配置屬性更改

  • spring.security.oauth2.client.registration.login.*.redirect-uri-template不贊成使用該物業spring.security.oauth2.client.registration.login.*.redirect-uri
  • 該spring.security.oauth2.resource.jwt.jwk.set-uri屬性已重命名為spring.security.oauth2.resourceserver.jwt.jwk-set-uri
  • 該spring.cloud.enabled屬性已刪除(CloudServiceConnectorsAutoConfiguration如果您需要禁用云連接器,則不包括在內)
  • management.metrics.binders.*.enabled已刪除所有屬性,以便直接排除自動配置。

總結

以上是生活随笔為你收集整理的Spring Boot 2.1 版本变化[翻译]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。