javascript
Spring Boot 2.x 新特性总结及迁移指南
這一篇文章主要講解 Spring Boot 2.x 與 1.5.x 的區別,2.x 主要更新了什么東西,以便對 Spring Boot 2.x 有一個詳細的了解。
本文講的 1.x 指的是 1.5.10, 2.x 指的是 2.0.0。
-
配置變更
在 2.x 中廢除了一些 1.x 中的配置,并增加了許多新配置,詳細請查看以下鏈接中的變更表格。
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Configuration-Changelog
-
依賴 JDK 版本升級
2.x 至少需要 JDK 8 的支持,2.x 里面的許多方法應用了 JDK 8 的許多高級新特性,所以你要升級到 2.0 版本,先確認你的應用必須兼容 JDK 8。
另外,2.x 開始了對 JDK 9 的支持。
-
第三方類庫升級
2.x 對第三方類庫升級了所有能升級的穩定版本,一些值得關注的類庫升級我給列出來了。
1) Spring Framework 5+
2) Tomcat 8.5+
3) Flyway 5+
4) Hibernate 5.2+
5) Thymeleaf 3+
-
響應式 Spring 編程支持
2.x 通過啟動器和自動配置全面支持 Spring 的響應式編程,響應式編程是完全異步和非阻塞的,它是基于事件驅動模型,而不是傳統的線程模型。就連 Spring Boot 內部也對一些功能點進行了有必要的響應式升級,最值得注意的是對內嵌式容器的支持。
對響應式編程支持又包括以下幾個技術模塊。
1) Spring WebFlux & WebFlux.fn 支持
2) 響應式 Spring Data 支持
3) 響應式 Spring Security 支持
4) 內嵌式的 Netty 服務器支持
-
HTTP/2 支持
提供對HTTP/2 的支持,如:Tomcat, Undertow, Jetty,這個得依賴具體選擇的應用服務器和應用環境。
-
配置屬性綁定
在 1.x 中,配置綁定是通過注解 @ConfigurationProperties 來注入到 Spring 環境變量中的。
在 2.x 中,配置綁定功能有了些的改造,在調整了 1.x 中許多不一致地方之外,還提供了獨立于注解之外的 API 來裝配配置屬性。并增加了屬性來源,這樣你就能知道這些屬性是從哪個配置文件中加載進來的。
-
Gradle 插件
Spring Boot的 Gradle 插件全面重寫了,并且最小支持 Gradle 4+ 以便提供一些重要的特性提升。
-
Kotlin
2.x 開始提供對 Kotlin 1.2 的支持,并且提供了一個 runApplication 函數來運行 Spring Boot 應用。
-
Actuator加強
在 2.x 中,對執行器端點進行了許多改進,所有的 HTTP 執行端點現在都暴露在 /actuator路徑下,并對 JSON 結果集也做了改善。
-
Data 支持
上面有說到對響應式 Spring Data 的支持,除此之外,其他 Data 模塊也做了許多更新和提升,具體體現在以下幾個地方。
1) 2.x 默認使用 HikariCP 連接池;
2) 更加合理化的優化了數據庫初始化邏輯;
3) spring.jdbc.template 自動配置現在可以通過 spring.jdbc.template 屬性定制;
4) 提供了新配置 spring.jdbc.template 方便分頁和排序;
5) 對數據庫 spring.jdbc.template 自動化配置支持;
6) 可以高級定制 MongoDB 客戶端;
7) 可以通過 spring.cache.redis.* 來配置 Redis 緩存默認值。
-
Web加強
除了上面說了 2.x 對響應式框架的支持,還包括以下幾個 web 開發改進。
1) 使用內嵌式容器時,context path 會和端口一起記錄并打印出來;
2) 所有支持的容器都支持過濾器的初始化;
3) Thymeleaf 開始支持 javax.time 類型;
4) 提供了一個 spring-boot-starter-json 啟動器對 JSON 讀寫的支持。
-
Quartz支持
2.x 提供了一個 spring-boot-starter-quartz 啟動器對定時任務框架 Quartz 的支持;
-
測試加強
在 2.x 中,對測試模塊有了一些調整。
-
其他一些改進
-
動態啟動圖案支持
?
遷移指南
從 1.5.x 可以順利升級到 2.x,如果你的應用還停留在 1.5.x 之前的版本,建議先升級到 1.5.x,而不是直接升級到 2.x,這樣的升級風險最小。
詳細的遷移說明有點多,這里就不一一介紹了,具體請閱讀官方遷移文檔:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Spring Boot 2.x 新特性总结及迁移指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10 种保护 Spring Boot 应
- 下一篇: 分布式系统中处理参数配置的 4 种方案