本月16日SpringBoot2.2發布,有哪些變化先知曉

  • 2019 年 10 月 26 日
  • 筆記

本月16日SpringBoot2.2發布了,有哪些新變化呢?我來告訴你

本月(2019年10月16日)Spring Boot 2.2已經正式發布了!在此篇文章中,將給大家介紹一下2.2版為大家帶來了哪些重要的新變化。筆者用心書寫,希望閱讀完成之後轉發關注,你的支援是我不竭的創作動力!

一、Spring bean全局延遲初始化配置

Spring Boot 2.2引入的一項新功能是全局延遲bean初始化的支援(默認情況下,此功能處于禁用狀態)。那麼如果啟用全局延遲bean初始化時會如何?

  • 所有Spring Bean及其依賴項的初始化,只有當他們被使用到的時候才被創建。

為了減少應用程式的初始化過程和啟動時間,您現在可以使用以下的屬性配置啟用全局延遲初始化Spring bean:

spring.main.lazy.initialization=true  

但是全局延遲初始化的缺點是顯而易見的,在進行任何延遲的初始化時,HTTP請求的第一次處理可能需要更長的時間。後續請求不受影響。所以應該謹慎使用。如果您不想在全局範圍內使用延遲初始化Spring Bean,則可以考慮使用@Lazy注釋為特定bean配置延遲初始化。

二、默認情況下禁用JMX

從Spring Boot 2.2開始,默認情況下禁用JMX。這有助於縮短應用程式的啟動時間,並且不會在運行時浪費大量資源。如果您依賴JMX,則可以再次啟用它:

spring.jmx.enabled=true  

三、被@ConfigurationProperties註解的類被初始化為bean

Spring Boot將為每個@ConfigurationProperties通過類路徑掃描發現的配置類創建一個Bean。在之前版本的開發過程中,如果我們希望配置類被初始化為一個bean ,則需要在配置類上使用@Component註解使其成為bean。現在不需要了,只需要一個@ConfigurationProperties註解。

注意:如果兩個註解都用,被註解的類可能會創建兩個bean,所以請把@Component註解移除掉。不要兩個一起用。

四、Java 13支援

本月16日SpringBoot2.2發布了,有哪些新變化呢?我來告訴你

Java 13於2019年9月17日正式發布了。

Spring Framework 5.2和Spring Boot 2.2也支援Java13。LTS Java版本8和11將與Spring Boot 2.2保持兼容。

五、配置(鍵)更改

Spring Boot 2.2引入了許多新的配置。還有一些不推薦使用和被刪除的配置。比較重要的更改是:

  • logging.file屬性已重命名為logging.file.name
  • logging.path屬性已重命名為logging.file.path

本月16日SpringBoot2.2發布了,有哪些新變化呢?我來告訴你

六、 依賴升級

Spring Boot 2.2附帶了許多依賴項升級。

與Spring相關的依賴項升級:

  • Spring Framework 5.2.0
  • Spring AMQP 2.2.0
  • Spring Batch 4.2.0
  • Spring Data Moore RELEASE
  • Spring HATEOAS 1.0.0
  • Spring Integration 5.2.0
  • Spring Kafka 2.3.0
  • Spring Security 5.2.0
  • Spring Session Corn

其他最重要的依賴項升級:

  • Elasticsearch 6.8.3(see breaking changes: in6.5,6.6and6.7)
  • Flyway 6.0.6
  • HSQLDB 2.5.0
  • Jackson 2.10.0
  • Jersey 2.29.1
  • Kafka 2.3.0
  • Kotlin 1.3.50
  • Lombok 1.18.10
  • Micrometer 1.3
  • Netty 4.1.42
  • Reactor Dysprosium
  • Solr 8.2.0
  • Tomcat 9.0.27

測試依賴項升級:

  • AssertJ 3.13.2(breaking changes)
  • Hamcrest 2.1
  • Mockito 3.1.0
  • Junit 5.5.2(JUnit 5』s vintage engine still support existing JUnit 4-based test classes so no breaking changes here)

期待您的關注