Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持
之前 Spring Boot 2.2沒能按時發(fā)布,是由于 Spring Framework 5.2 的發(fā)布受阻而推遲。這次隨著 Spring Framework 5.2.0 成功發(fā)布之后,Spring Boot 2.2 也緊跟其后,發(fā)布了第一個版本:2.2.0。下面就來一起來看看這個版本都更新了些什么值得我們關(guān)注的內(nèi)容。
組件版本更新
這些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
大幅的性能提升
關(guān)于Spring Boot的性能問題是我們經(jīng)常在內(nèi)容平臺上看到吐槽的關(guān)鍵詞。這次在Spring Boot 2.2中,針對性能這一點(diǎn),做了大幅的優(yōu)化。應(yīng)用程序的啟動速度將變得更快,內(nèi)存占用也會變得更少。
同時,為了加快應(yīng)用的啟動,還增加一個全局延遲初始化的配置參數(shù)spring.main.lazy-initialization,這可以讓我們的應(yīng)用更快的完成啟動動作,但是值得注意的是,延遲啟動也會有下面這些副作用:
- 應(yīng)用在進(jìn)行延遲初始化的時候,HTTP請求的處理會需要更長的時間
- 原本可能在啟動期出現(xiàn)的錯誤,將延遲到啟動的運(yùn)行期間出現(xiàn)
Java 13的支持
由于Spring Framework 5.2增加了對Java 13的支持,所以Spring Boot 2.2也自然增加了這一特性。同時,Spring Boot 2.2對于老版本的Java 11、Java 8依然支持良好。所以,對于還在使用Java 8的用戶也可以安心的升級使用。
不可變的 @ConfigurationProperties 綁定
配置屬性現(xiàn)在支持基于構(gòu)造函數(shù)的綁定,該綁定允許@ConfigurationProperties注解修飾的類是不可變的。可以通過使用@ConstructorBinding注解修飾@ConfigurationProperties類或其構(gòu)造函數(shù)之一來啟用基于構(gòu)造函數(shù)的綁定。可以在配置屬性綁定提供的構(gòu)造函數(shù)參數(shù)上使用@DefaultValue和@DateTimeFormat之類的注釋。
更多詳細(xì)信息參閱文檔: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實(shí)現(xiàn):spring-boot-starter-rsocket。當(dāng)項(xiàng)目依賴了spring-security-rsocket的時候,該starter還會自動配置Spring Security對RSocket的集成實(shí)現(xiàn)。
更多詳細(xì)信息參閱文檔:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html//spring-boot-features.html#boot-features-rsocket
健康檢查的分組支持
現(xiàn)在可以將Spring Boot Actuator中各種各樣的健康指標(biāo)實(shí)現(xiàn)分組。如果將應(yīng)用程序部署到Kubernetes,一個典型的需求是您可能需要不同組的健康指標(biāo)來進(jìn)行“l(fā)iveness”和“readiness”的探測。這個時候,我們就可以通過配置屬性來定義不同的分組,比如:下面創(chuàng)建了一個僅具有DataSource指示器的自定義組:
| management.endpoint.health.group.custom.include=db |
通過訪問localhost8080/actuator/health/custom,就可以訪問自定義的組了。
更多詳細(xì)信息參閱文檔:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html//production-ready-features.html#health-groups
其他更新
Release Notes中還記錄了許多其他更改和改進(jìn)。讀者可以通過下方鏈接查看更多更新內(nèi)容:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.2-Release-Notes
參考資料
- Spring Boot 2.2.0
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎
總結(jié)
以上是生活随笔為你收集整理的Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LsLoader——通用移动端Web A
- 下一篇: 消息中间件系列(八):Kafka、Roc