最低 Java 8node
發佈一個新的主要版本給了 Spring 團隊有機會從新編譯基於 Java 8 的代碼庫並使用其新功能。所以,Spring Boot 2.0 須要 Java 8 或更高版本,它再也不支持Java 6 和 Java 7,由於它們已經達到了生命的盡頭。react
支持 Java 9
Spring Boot 2 徹底支持 Java 9,若是你想用 Java 9 運行 Spring Boot 應用程序,請看 Spring Boot with Java 9 .redis
Spring Framework 5.0
Spring Boot 2.0 的構建須要 Spring Framework 5.0。儘管 Spring 5 自2017 年 9 月開始廣泛上市,但大多數項目可能會在 Spring Boot 2.0 正式發佈時開始採用它。Spring 5 引入了一些很好的改進,其中最值得注意的新功能之一是 Reactive Stack。spring
內嵌的 Servlet 容器數據庫
Jetty:最低版本 9.4
Tomcat:最低版本 8.5緩存
TLS 配置tomcat
可使用 server.ssl.*
屬性爲你的 WebFlux 應用 配置 SSL,Tomcat、 Jetty、Undertow 和 Reactor Netty 都支持此配置。性能優化
支持 HTTP/2服務器
Spring Boot 還可讓你的 MVC 或 WebFlux 應用經過設置 server.http2.enabled 來使用 HTTP/2。它支持 Tomcat、Undertow 和 Jetty。這取決於所選的服務器、JDK 及其餘條件。架構
- 文檔: Spring Boot 配置 HTTP2
構建
配置 Gradle BootRun
BootRun 任務提供了配置應用程序參數(args)和 JVM 參數(jvmargs)的屬性,經過 execspec可使用更高級的配置。有關更多詳細信息,請參閱 Gradle插件文檔。根據用戶的反饋,BootRun 任務再次成爲 Gradle 的 JavaExec 任務的一個子類。它能夠像其餘任何 JavaExec 任務同樣進行配置。
默認數據庫鏈接池
默認鏈接池已從 Tomcat 更改成 HikariCP。若是你在 tomcat-jdbc的環境中使用 Hikari,則能夠刪除 spring.datasource.type 。一樣,若是你想繼續使用 tomcat 鏈接池,只需將如下內容添加到配置中:數據庫遷移liquibase 和 flyway 配置鍵被移動到 spring namespace,即分別爲 spring.liquibase 和 spring.flywayFlyway/Liquibase 靈活配置若是僅提供自定義 url 或 user,則自動配置將重用標準數據源屬性而不是忽略它們。這容許你僅使用所需的信息爲遷移目的建立自定義數據源。
檢測數據源初始化
若是 Flyway 或 Liquibase 正在管理數據源,而且你使用的是嵌入式數據庫,則 Spring Boot 2 會自動關閉 Hibernate 的自動 DDL 功能。
數據庫初始化器
僅當使用嵌入式數據庫時,默認狀況下會發生 Spring Batch、Spring Integration、 Spring Session、 Quartz 數據庫初始化。enable屬性已被替換爲更具表現力的枚舉。例如,若是要始終執行 Spring Batch 初始化,能夠設置:數據庫初始化數據源初始化僅針對嵌入式數據源啓用,而且只要你使用生產數據庫就會關閉。此外,新的 spring.datasource.initialization-mode(替換spring.datasource.initialize)提供了更多控制。數據源指標檢測工具負責視全部可用的數據源,併爲每一個數據源發佈度量標準(最小值、最大值和使用率)。可配置的 JPA 映射資源能夠經過 spring.jdbc.template自定義 Spring Boot 自動配置的 JdbcTemplate。此外,自動配置的 NamedParameterJdbcTemplate在幕後重用了 JdbcTemplate。
Hibernate
Hibernate 的最低支持版本是5.2。閱讀 hibernate 5.2遷移指南 以瞭解如何升級。
支持自定義 Hibernate 命名策略
對於高級場景,您能夠定義 ImplicitNamingStrategy 或 PhysicalNamingStrategy 在上下文中用做常規 Bean。
Hibernate 屬性定製
經過暴露 HibernatePropertiesCustomizer,能夠更加細緻地定製 Hibernate 使用的屬性。
CassandraThe spring.data.cassandra exposes pooling options.
響應式 Couchbase 支持
Spring Data Reactive Repositories 可用於 Couchbase,而且能夠經過spring-boot-starter-data-couchbase-reactive 輕鬆用。
InfluxDB
若是設置了 InfluxDB Java客戶端和 spring.influx.url,則會自動配置 InfluxDB 客戶端。對憑證的支持也是可用的。運情況端點能夠監視InfluxDB 服務器。
Redis 緩存配置
能夠暴露RedisCacheConfiguration 控制 RedisCacheManager。還引入了新的註釋 @dataredistest。
Elasticsearch
Spring Boot 2 從如今開始須要 Elasticsearch 5.4 。 Elastic’s announcement that embedded Elasticsearch is no longer supported,NodeClient 的自動配置已被刪除。一個 TransportClient 能夠經過使用 spring.data.elasticsearch.cluster-nodesto 來自動配置一個或多個要鏈接的節點的地址。
Mongo 客戶端自定義
能夠經過定義一個類型爲 MongoClientSettingsBuilderCustomizer 的bean 來將高級定製應用於 Spring Boot 自動配置的MongoDB 客戶端。
Mockito 1.x
Mockito 1.x 再也不支持 @ MockBean 和 @ SpyBean。若是你不使用 spring-boot-starter-test 來管理你的依賴關係,你應該Mockito2.x.
Kotlin Extensions for TestRestTemplate
Kotlin RestTemplate 擴展也可用於 TestRestTemplate,以使開發者體驗一致。
測試改進Converter和 GenericConverter 會自動使用 @WebMvcTest和 @WebFluxTest進行掃描。
推薦一個交流學習羣:478030634 裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良多: