天天看點

Spring Boot 2.2.1 釋出,一個有點坑的版本!

Spring Boot 2.2.1 釋出,一個有點坑的版本!

Spring Boot 2.2.0 沒釋出多久,Spring Boot 2.2.1 又釋出了,這是一個很有意思,又有點 "坑" 的一個版本。

除了日常的 bug 修複、優化提升、依賴更新,這個版本又颠覆了一個 Spring Boot 2.2.0 配置。

如果你已經更新到了 Spring Boot 2.2.0,@ConfigurationProperties 注解是可以不需要定義 Bean 直接使用的。

來看下使用差別,真是夠折騰的幾個版本。

Spring Boot 2.2.0 之前:

1. @Configuration
2. @ConfigurationProperties(prefix = "xxx")
3. public class XXXProperties      

Spring Boot 2.2.0:

1. @ConfigurationProperties(prefix = "xxx")
2. public class XXXProperties      

看見沒,不需要定義 Bean,可以直接被自動掃描到。而在 Spring Boot 2.2.1 中又作了調整:

Spring Boot 2.2.1:

Spring Boot 2.2.1 釋出,一個有點坑的版本!

@ConfigurationProperties

自動掃描支援被廢棄,恢複到 2.2.0 之前的用法了,又加了一個新的配置方法:

@Configuration
@ConfigurationProperties(prefix = "xxx")
public class XXXProperties      

或者是:

@ConfigurationProperties(prefix = "xxx")
public class XXXProperties
 
@SpringBootApplication
@ConfigurationPropertiesScan
@EnableConfigurationProperties
public class Application       

這個版本加了一個 @ConfigurationPropertiesScan 注解,用來主動掃描沒有定義 Bean 的 @ConfigurationProperties,相當于一個總開關,我覺得倒挺好的。

如果從 Spring Boot 2.2.0 過度到 Spring Boot 2.2.1,對于這個配置,如果不注意,就可能會有問題。