springboot(十六) 2.0变化



新版本特性

基于java8, 支持java9

也就是说Spring Boot2.0的最低版本要求为JDK1.8,据了解国内大部分的互联网公司系统都还跑在JDK1.6/1.7上,因此想要升级到Spring Boot2.0 就需要注意一下,同事支持JAVA9

响应式编程

使用Spring WebFlux/WebFlux.fn提供响应式Web编程支持,WebFlux是一个全新的非堵塞的函数式Reactive Web框架,可以用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现非常好, 此功能来源于Spring 5.0
Spring Boot 2.0 也提供对响应式编程的自动化配置,如Reactive Spring Data、 Reactive Spring Security等

HTTP/2支持

在Tomcat,Undertow和Jetty中军支持HTTP/2

对Kotlin支持

引入对Kotlin 1.2.x 的支持,并提供了一个runApplication函数,让你通过惯用的Kotlin来运行Spring Boot 应用程序

全新的执行器架构

全新的执行器架构,支持Spring MVC WebFlux和Jersey

支持Quartz

Spring Boot 1.0 并没有提供对Quartz的支持,之前出现了各种集成方案, Spring Boot 2.0给出了最简单的集成方式

Security

大大的简化了安全自动配置

Metrics

Metrics方面, Spring Boot 2引入了Micrometer来同意metrics的规范, 使得开发人员更好的理解和使用Metrics的模块, 而不需要关心对接的具体存储是什么.

监控方面

Spring Boot 2增强了对Micrometer的集成,RabbitMQ、JVM线程和垃圾收集指令会自动进行instrument 监控,异步控制器(controller)也会自动添加到监控里,通过集成,还可以对influxDB服务器进行监控

数据方面

db方面,默认引入了HikariCP,替代了之前的tomact-pool作为底层的数据库连接池,对比于tomcat-pool, HikariCP拥有更好的性能,总而言之就是提高了db的访问速度
JOOQ的支持
Redis方面, 默认引入了Lettuce 替代了之前的jedis作为底层的redis连接方式
MongoDB\Hibernate优化

Thymeleaf 3

Spring Boot2 支持了Thymeleaf 3, Thymeleaf 3 相对于Thymeleaf 2性能提升可不是一点点, 因为2.0 的性能确实不怎么样, 同时也使用了新的也面解析系统.

OAuth 2.0

同时也加入了对于QAuth 2.0的支持, 使得开发人员更加友好的使用Spring-security来完成权限模块的开发

依赖组件的更新
  • Jetty 9.4
  • Tomcat 8.5
  • Flyway 5
  • Hibernate 5.2
  • Gradle 3.4
  • Thymeleaf 3.0

技术名词解释

Spring 现在作为Java开源界的老大,它的一举一动都影响着行业的技术方向, 在这次发布的ReleaseNotes中发现了有很多的技术都还没了解过

WebFlux是什么?

WebFlux模块的名称是spring-Webflux,名称中的Flux来源于Reactor中的类Flux,Spring webFlux有一个全新的非堵塞的函数式ReactiveWeb框架,可以用来构建异步的、非堵塞的、事件驱动的服务, 在伸缩性方面表现的非常好

非阻塞的关键预期好处是能够以小的固定数量的线程和较少的内存进行扩展,在服务器端WebFlux支持2中不同的编程模型

  • 基于注解的 @Controller 和其他注解也支持 Spring MVC
  • Functional 、Java 8 lambda 风格的路由和处理

默认情况下,Spring Boot 2使用NettyWebFlux,因为Netty在异步非阻塞空间中被广泛使用,异步非阻塞连接可以节省更多的资源,提供更高的响应速度, 通过比较Servlet3.1 非阻塞I/O没有太多的使用,因为使用它的成本比较够啊, Spring WebFlux打开了一条实用的通路.

值得注意的是: 支持reactive编程的数据库只有MongoDB, redis, Cassandra, Couchbase

HTTP/2

相比 HTTP/1.x, HTTP/2 在底层传输做了很大的改动和优化:
–HTTP/2采用二进制格式传输数据, 而非HTTP/1.x的文本格式, 二进制格式在协议的解析和优化扩展上带来更多的优势和可能
–HTTP/2对消息头采用HPACK进行压缩传输, 能够节省消息头占用的网络流量,而HTTP/1.x每次请求,都会携带大量冗余头信息,浪费了很多带宽资源,头压缩能够很好的解决该问题
–多路复用,直白的说就是所有的请求都是通过一个TCP连接并发完成, HTTP/1.x虽然通过pipeline也能并发请求,但是多个请求之间的响应会被阻塞的,所以pipeline至今也没有被普及应用,而HTTP/2做到了真正的并发请求,同时,流还支持优先级和流量控制
–Server Push: 服务端能够更快的把资源推送给客户端, 例如服务端可以主动把JS和CSS文件推送给客户端, 而不需要客户端解析HTML再发送这些请求,当客户端需要的时候, 它已经在客户端了

JOOQ

JOOQ是基于java访问关系型数据库的工具包, JOOQ即吸取了传统ORM操作数据的简单和安全性, 又保留了原生SQL的灵活性, 它更像是介于ORM和JDBC之间的中间层, 对于喜欢写sql的码农来说, JOOQ可以完全满足你的控制欲,可以是java代码写出来sql的感觉来

Lettuce

Lettuce是一个可伸缩的线程安全的Redis客户端, 用于同步 异步和反应使用,多个线程可以共享同一个RedisConnection, 它利用优秀的netty NIO框架来高效的管理多个连接,支持先进的Redis功能,如Sentinel,集群,流水线, 自动重新连接和Redis数据模型
国内使用jedis的居多

HikariCP

HikariCP是一个高性能的JDBC连接池, 可能是目前java业界最快的数据库连接池

Flyway

Flyway是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具,用通俗的话讲,可以像SVN管理不同的人的代码那样,管理不同的人sql脚本,从而做到数据库同步

GSON

Gson是google解析json的一个开源框架,同类的框架fastjson,jackjson等等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值