最低 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性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多: