Spring Boot 2 4 0 發布說明

2022-03-11 01:52:40 字數 2943 閱讀 4328

spring boot 2.4.0 正式版本不再新增 release 字尾宣告,在這個版本中增加了大量的新特性和改進,切記,不要輕易公升級

除了剛發布的spring boot 2.4.0,spring boot 2.3.x/2.2.x仍舊是活躍的維護的版本。spring boot遵循的是pivotal oss支援策略,從發布日期起支援主要版本3年(注意:是主要版本)。下面是詳情:

從2.4.0開始,版本名將去除release字尾,所以這次的版本不是2.4.0.release,而是2.4.0

2.4.0是第乙個使用新版本方案的spring boot發行版本

這個改變最為重磅,本次改變了配置檔案的載入邏輯,旨在簡化和合理化外部配置的載入方式,它可能具有不向下相容性。

因為配置檔案隸屬於程式的一部分,特別是我們現在幾乎都會使用到配置中心。因此下面針對於老版本公升級到spring boot 2.4.0做個簡單的遷移指導。

此api在2.4.0已被標記為過期,按照spring boot的版本策略,此類將在spring boot 2.6.0版本被移除。因此:若不是迫不得已(時間緊急),並不建議你用相容手法這麼去做,因為這將成為技術債,遲早要還的。

若你對配置檔案的使用有如下情行,那麼你需要做遷移:

spring boot 2.4.0公升級對配置檔案的改動是最大的,並且還不具備向下相容性,簡單的說就是從此版本開始要把spring boot的配置檔案載入機制重學一遍(比如還增加了spring.config.import,增加了對kubernetes配置的支援等等),並且還要學會如何遷移。

改進嵌入式資料庫檢測機制:僅當資料庫在記憶體中時才將其視為嵌入式資料庫。所以如果使用h2、hsql等產品,但是你是基於檔案的永續性或使用的是伺服器模式,那麼將不會檢測為記憶體資料庫。而對於非記憶體資料庫,你可能需要額外做如下動作:

logback一些配置項改名了,新增了配置類logbackloggingsystemproperties用於對應,它繼承自之前的loggingsystemproperties

之前的配置項有些被廢棄(此版本還未刪除,後續版本肯定會刪除的),對應關係如下

老(~已廢棄~)

新logging.pattern.rolling-file-name

logging.logback.rollingpolicy.file-name-pattern

logging.file.clean-history-on-start

logging.logback.rollingpolicy.clean-history-on-start

logging.file.max-size

logging.logback.rollingpolicy.max-file-size

logging.file.total-size-cap

logging.logback.rollingpolicy.total-size-cap

logging.file.max-history

logging.logback.rollingpolicy.max-history

一些屬性是被放到system environment裡面的:

老(~已廢棄~)

新rolling_file_name_pattern

logback_rollingpolicy_file_name_pattern

log_file_clean_history_on_start

logback_rollingpolicy_clean_history_on_start

log_file_max_size

logback_rollingpolicy_max_file_size

log_file_total_size_cap

logback_rollingpolicy_total_size_cap

log_file_max_history

logback_rollingpolicy_max_history

從spring boot 2.4開始,預設將不會再註冊defaultservlet。因為在絕大多數的應用中,spring mvc提供的dispatcherservlet是唯一需要被註冊的servlet。

若你的工程強依賴於此servelt,那麼可以通過此配置項server.servlet.register-default-servlet = true把它註冊上去。
預設情況下,不在 http traces中包含 cookie 請求頭和 set-cookie 響應頭。

若你仍舊想保留老的習慣,那麼請用配置項management.trace.http.include = cookies, errors, request-headers, response-headers自行控制。
spring boot 2.2.0版本開始就引入junit 5作為單元測試預設庫,在此之前,spring-boot-starter-test包含的是junit 4的依賴,spring boot 2.2.0版本之後替換成了junit jupiter(junit5)。

vintage engine屬於junit5的乙個模組,它的作用是:允許用junit 5執行用junit 4編寫的測試,從而提供了向下相容的能力。

從2.2.0到現在經過了2個版本的迭代,到spring boot 2.4.0這個版本決定了把vintage engine從spring-boot-starter-test正式移除。因此:若你的工程仍需要對junit4支援,那麼請手動引入依賴項(如果工程量不大,強烈建議使用junit5,比4好用太多)

org.junit.vintage

junit-vintage-engine

test

org.hamcrest

hamcrest-core

說明:其實在2.4.0之前,若你是從生成的專案其實也是不會帶有vintage-engine的。只不過它是通過顯式的在pom裡通過exclusion標籤來排除的

SpringBoot 2 4 0跨域問題

import org.springframework.context.annotation.configuration import org.springframework.web.servlet.config.annotation.corsregistry import org.springfra...

SpringBoot 2 4 0跨域問題出錯

錯誤 when allowcredentials is true,allowedorigins cannot contain the special value since that cannot be set on the access control allow origin response ...

快報!Spring Boot 2 4 4 發布

及時送達 沒錯,距離 spring boot 2.4.3 發布剛過乙個月,spring boot 2.4.4 又來了 這個版本改了 60 個 bug,以及文件優化 依賴公升級。又是乙個改 bug 優化版本,沒什麼好說的了,通知到大家這個更新,有需要的可以享受免費公升級。好了,如果你還沒用過 spri...