基础环境升级
1、SpringBoot2.0要求最低jdk8,支持jdk9,不再支持java6和7
2、依赖组件升级
Jetty9.4,jetty是一个开源的servlet容器,它为基于java的web内容提供运行环境;
Tomcat8.5,Apache Tomat8.5.x取代8.0.x,完全支持java9;
Flyway 5,Flyway 是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。
Hibernate 5.2,Hibernate 是一款非常流行的 ORM 框架。
Gradle 3.4,Spring Boot 的 Gradle 插件在很大程度上已被重写,有了重大的改进。
Thymeleaf 3.0,Thymeleaf 3 相对于 Thymeleaf 2 有非常大的性能提升。
默认软件替换和优化
- HikariCP,默认连接池已从tomcat切换到hikariCP,hikariCP是一个高性能的JDBC连接池。号称业界最快的数据库连接池。
- Security,没有使用springboot之前集成比较麻烦,而SpringBoot 中基于Java配置实现Springsecurity功能。SpringBoot2.0极大简化默认的安全配置使得添加定制安全变得简单。
- OAuth 2.0 是 OAuth 协议的延续版本,但不向后兼容 OAuth 1.0,即完全废止了 OAuth1.0。OAuth 2.0 是一个授权框架,或称授权标准,它可以使第三方应用程序或客户端获得对 HTTP 服务上(如 Google、GitHub )用户帐户信息的有限访问权限。OAuth 2.0 通过将用户身份验证委派给托管用户帐户的服务以及授权客户端访问用户帐户进行工作。
- Micrometer,是一款监控指标的度量类库,可以让你在没有供应商锁定的情况下对JVM的应用程序代码进行调整。Spring Boot 2.0 增强了对 Micrometer 的集成,不再提供自己的指标 API。依靠 micrometer.io 来满足所有应用程序监视需求。
- Redis默认使用lettuce,替代了之前jedis作为底层的redis连接方式。Lettuce是可伸缩的线程安全redis客户端,用于同步异步和反应使用。多个线程共享同一个redisConnection。
- 配置属性绑定。在 Spring Boot 2.0 中,使用 @ConfigurationProperties 的绑定机制被重新设计,限制了绑定规则,并修复了 Spring Boot 1.x 中的许多不一致的地方。
- 转换器支持。Binding使用了新的ApplicationConversionService类,提供了额外有用的转化。吸引眼球的是转换器的Duration类型和分割字符串。
- Actuator改进。Spring Boot 2.0 改进了从许多端点返回的 JSON 有效负载。
新技术的引入
- 支持http/2。相比 HTTP/1.x,HTTP/2 在底层传输做了很大的改动和优化:
a、HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式。
b、HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量;而 HTTP/1.x 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源;头压缩能够很好的解决该问题。
c、多路复用,直白的说就是所有的请求都是通过一个 TCP 连接并发完成。
d、server push。服务端能够更快把资源推送客户端。
2、嵌入式Netty服务器。
3、Kotlin的支持。
4、JOOQ的支持。JOOQ 是基于 Java 访问关系型数据库的工具包。JOOQ 既吸取了传统 ORM 操作数据的简单性和安全性,又保留了原生 SQL 的灵活性,它更像是介于 ORMS 和 JDBC 的中间层。
5、支持Quartz。
6、响应式编程。