SpringBoot2.4新特性詳解

      SpringBoot2.5新特性詳解

      SpringBoot2.4新特性詳解

      SpringBoot2.3新特性詳解

      SpringBoot2.2新特性詳解

1、解除默認加載bootstratp配置文件

升級到2.4之後,spring.cloud.bootstratp.enabled默認爲false,不再支持自動讀取bootstratp配置文件,需要加依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
    <version>3.0.3</version>
</dependency>

如果依舊用2.4版本之前的邏輯,需要額外配置

spring.config.use-legacy-processing=true

2、配置數據項遷移指南

      Spring Boot 2.4 對文件application.propertiesapplication.yml文件的處理方式進行了徹底改革。更新的邏輯旨在簡化和合理化加載外部配置的方式。它還使我們能夠提供新功能,例如spring.config.import支持,但有些參數的組合形式卻得到了限制,升級請謹慎。

      如果你的應用工程只有一個簡單的 application.properties 或 application.yml 文件,則可以進行無縫升級到 Spring Boot 2.4.0。

      但是,如果你的配置較爲複雜,比如說有指定 profile 的參數,或者有基於 profile 激活的參數,要使用新功能就需要進行一些更改。

      如果沒有準備升級遷移,只是想升級一下springboot版本也可以使用之前的配置數據數據邏輯,則需要切換回舊模式,爲此,您應該將該spring.config.use-legacy-processing屬性設置爲true該屬性需要在 Spring 中設置Environment。最簡單的方法通常是將其添加到jarapplication.propertiesapplication.yml內部。

      例如,你可以有一個src/main/resources/application.properties如下:

spring.config.use-legacy-processing =true

     如果想要升級2.4之後的新配置邏輯,如:

spring:
  profiles: "prod"

則替換爲:

spring:
  config:
    activate:
      on-profile: "prod"

生產環境啓動命令依舊不變:

$ java -jar app.jar --spring.profiles.active=prod

組合命令2.4之前

 

spring.profiles: "debug"
spring.profiles.include: "debugdb,debugcloud"

2.4組合命令之後:

spring:
  profiles:
    group:
      "debug": "debugdb,debugcloud"

3、移除了 JUnit 5’s Vintage 引擎

      Spring Boot 2.4.0 從 spring-boot-starter-test 中移除了 JUnit 5 Vintage 引擎,JUnit 5 可以通過 vintage 引擎來運行 JUnit 4 編寫的測試用例,說白了就是兼容 JUnit 4 唄。如果你不想遷移測試用例到 JUnit 5 而繼續使用 JUnit 4,添加以下 Maven 依賴即可:

<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4、配置文件屬性獲取新增@Name

@ConfigurationProperties(prefix = "sample")
@ConstructorBinding
public class SampleConfigurationProperties {

  private final String importValue;

  public SampleConfigurationProperties(@Name("import") String importValue) {
    this.importValue = importValue;
  }

}

5、Java15支持

Spring Boot 2.4 現在完全支持(並針對)Java 15。支持的最低版本仍然是 Java 8。

6、回滾配置屬性

特定於 Logback 的日誌屬性已被重命名以反映它們是特定於 Logback 的事實。以前的名稱已被棄用。

以下 Spring Boot 屬性已更改:

logging.pattern.rolling-file-namelogging.logback.rollingpolicy.file-name-pattern

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

logging.file.max-sizelogging.logback.rollingpolicy.max-file-size

logging.file.total-size-caplogging.logback.rollingpolicy.total-size-cap

logging.file.max-historylogging.logback.rollingpolicy.max-history

與它們映射到的系統環境屬性一樣:

ROLLING_FILE_NAME_PATTERNLOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN

LOG_FILE_CLEAN_HISTORY_ON_STARTLOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START

LOG_FILE_MAX_SIZELOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE

LOG_FILE_TOTAL_SIZE_CAPLOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP

LOG_FILE_MAX_HISTORYLOGBACK_ROLLINGPOLICY_MAX_HISTORY

7、默認Servlet註冊

      Spring Boot 2.4 將不再註冊DefaultServlet您的 servlet 容器提供的。在大多數應用程序中,它不被使用,因爲 Spring MVCDispatcherServlet是唯一需要的 servlet。 

      如果您發現仍然需要默認的 servlet server.servlet.register-default-servlettrue則可以設置爲。

8、默認情況下,HTTP跟蹤不再包含cookie標頭

    CookieSet-Cookie默認情況下,請求標頭和響應標頭不再包含在 HTTP 跟蹤中。要恢復 Spring Boot 2.3 
的行爲,請設置management.trace.http.include爲cookies, errors, request-headers, response-headers

9、Docker支持升級

當使用 Spring Boot 構建時,可以爲構建器或者運行鏡像使用私有授權的 Docker 私有註冊中心,支持用戶名/密碼認證以及基於 Token 機制認證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章