1. 程式人生 > >Spring Boot 2.2 正式釋出,大幅效能提升 + Java 13 支援

Spring Boot 2.2 正式釋出,大幅效能提升 + Java 13 支援

之前 Spring Boot 2.2沒能按時釋出,是由於 Spring Framework 5.2 的釋出受阻而推遲。這次隨著 Spring Framework 5.2.0 成功釋出之後,Spring Boot 2.2 也緊跟其後,釋出了第一個版本:2.2.0。下面就來一起來看看這個版本都更新了些什麼值得我們關注的內容。

元件版本更新

這些Spring框架元件更新了依賴版本:

  • Spring AMQP 2.2
  • Spring Batch 4.2
  • Spring Data Moore
  • Spring Framework 5.2
  • Spring HATEOAS 1.0
  • Spring Integration 5.2
  • Spring Kafka 2.3
  • Spring Security 5.2
  • Spring Session Corn

框架中涉及的第三方包也更新了依賴版本:

  • Elasticsearch 6.7
  • Flyway 6.0
  • Jackson 2.10
  • JUnit 5.5
  • Micrometer 1.3
  • Reactor Dysprosium
  • Solr 8.0

大幅的效能提升

關於Spring Boot的效能問題是我們經常在內容平臺上看到吐槽的關鍵詞。這次在Spring Boot 2.2中,針對性能這一點,做了大幅的優化。應用程式的啟動速度將變得更快,記憶體佔用也會變得更少。

同時,為了加快應用的啟動,還增加一個全域性延遲初始化的配置引數spring.main.lazy-initialization

,這可以讓我們的應用更快的完成啟動動作,但是值得注意的是,延遲啟動也會有下面這些副作用:

  • 應用在進行延遲初始化的時候,HTTP請求的處理會需要更長的時間
  • 原本可能在啟動期出現的錯誤,將延遲到啟動的執行期間出現

Java 13的支援

由於Spring Framework 5.2增加了對Java 13的支援,所以Spring Boot 2.2也自然增加了這一特性。同時,Spring Boot 2.2對於老版本的Java 11、Java 8依然支援良好。所以,對於還在使用Java 8的使用者也可以安心的升級使用。

不可變的 @ConfigurationProperties 繫結

配置屬性現在支援基於建構函式的繫結,該繫結允許@ConfigurationProperties

註解修飾的類是不可變的。可以通過使用@ConstructorBinding註解修飾@ConfigurationProperties類或其建構函式之一來啟用基於建構函式的繫結。可以在配置屬性繫結提供的建構函式引數上使用@DefaultValue和@DateTimeFormat之類的註釋。

更多詳細資訊參閱文件:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html/spring-boot-features.html#boot-features-external-config-constructor-binding

RSocket 支援

已為RSocket添加了自動化配置的starter實現:spring-boot-starter-rsocket。當專案依賴了spring-security-rsocket的時候,該starter還會自動配置Spring Security對RSocket的整合實現。

更多詳細資訊參閱文件:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html//spring-boot-features.html#boot-features-rsocket

健康檢查的分組支援

現在可以將Spring Boot Actuator中各種各樣的健康指標實現分組。如果將應用程式部署到Kubernetes,一個典型的需求是您可能需要不同組的健康指標來進行“liveness”和“readiness”的探測。這個時候,我們就可以通過配置屬性來定義不同的分組,比如:下面建立了一個僅具有DataSource指示器的自定義組:

management.endpoint.health.group.custom.include=db

通過訪問localhost8080/actuator/health/custom,就可以訪問自定義的組了。

更多詳細資訊參閱文件:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html//production-ready-features.html#health-groups

其他更新

Release Notes中還記錄了許多其他更改和改進。讀者可以通過下方連結檢視更多更新內容:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.2-Release-Notes

參考資料

  • Spring Boot 2.2.0

    歡迎關注我的公眾號:程式猿DD,獲得獨家整理的學習資源和日常乾貨推送。
    如果您對我的專題內容感興趣,也可以關注我的部落格:didispace.com