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...