SpringBoot2.2新特性詳解

      SpringBoot2.6新特性詳解

      SpringBoot2.5新特性詳解

      SpringBoot2.4新特性詳解

      SpringBoot2.3新特性詳解

      SpringBoot2.2新特性詳解

1、延遲初始化設置

現在可以通過 spring.main.lazy-initialization 屬性啓用全局延遲初始化,以減少啓動時間。不過,使用此功能需要付出一定代價:

1、在進行任何延遲的初始化時,HTTP 請求的處理可能需要更長的時間

2、通常在啓動時會發生的故障現在在啓動後纔會出現

2、支持Java13

3、配置文件與類綁定獲取屬性升級

以前獲取配置文件都是在類上添加

@ConfigurationProperties
@Component

這兩個註解類,啓動類@SpringBootApplication裏包含註解@ComponentScan,會自動掃描該類,通過set方法綁定配置文件的屬性值。

但是2.2升級之後,@ConstructorBinding在類上添加,支持構造函數,如果有多個構造函數,則在構造函數上添加該註解。Spring Boot 2.2.0 中默認啓用配置屬性掃描,但從 Spring Boot 2.2.1 開始,您必須選擇使用@ConfigurationPropertiesScan.

    1、用了 @ConstructorBinding這個註解,就標識這個類的參數優先通過帶參數的構造器注入,
如果沒有帶參數的構造器則再通過setters注入;怎麼判斷是通過 setters 注入還是構造器注入,請看這個類的源碼:
org.springframework.boot.context.properties.ConfigurationPropertiesBean.BindMethod

    2、當 @ConstructorBinding用在類上時,該類只能有一個帶參數的構造器;如果有多個構造器時,可以把
@ConstructorBinding直接綁定到具體的構造方法上;

    3、成員變量可以是 final不可變;

    4、支持該類的內部類構造器注入的形式;

    5、支持默認值 @DefaultValue、@DateTimeFormat時間格式等註解配合使用;

    6、需要配合 @ConfigurationProperties、@EnableConfigurationProperties註解使用;

    7、不支持像 @Component、@Bean、@Import等方式創建 bean 的構造器參數綁定;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章