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