目录

  • 新版本特性
    • 基于java8, 支持java9
    • 响应式编程
    • HTTP/2支持
    • 对Kotlin支持
    • 全新的执行器架构
    • 支持Quartz
    • Security
    • Metrics
    • 监控方面
    • 数据方面
    • Thymeleaf 3
    • OAuth 2.0
    • 依赖组件的更新
  • 技术名词解释
    • WebFlux是什么?
    • HTTP/2
    • JOOQ
    • Lettuce
    • HikariCP
    • Flyway
    • GSON

新版本特性

基于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等等

springboot(十六) 2.0变化相关推荐

  1. springboot(十六):使用Jenkins部署Spring Boot

    jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目 jenkins搭建 部署分为三个步骤: 第一步,jenkins安装 第二步,插件安装和配置 第 ...

  2. SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)

    一. 接口文档概述 swagger是当下比较流行的实时接口文文档生成工具.接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发 ...

  3. 第四十六章:SpringBoot RabbitMQ完成消息延迟消费

    在2018-3-1日SpringBoot官方发版了2.0.0.RELEASE最新版本,新版本完全基于Spring5.0来构建,JDK最低支持也从原来的1.6也改成了1.8,不再兼容1.8以下的版本,更 ...

  4. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  5. 【二十六】springboot实现多线程事务处理

     springboot篇章整体栏目:  [一]springboot整合swagger(超详细 [二]springboot整合swagger(自定义)(超详细) [三]springboot整合token ...

  6. 第十六节 springboot 打包vue代码实现前后端统一部署

    svbadmin学习日志 本学习日志是使用Springboot和Vue来搭建的后台管理系统: 演示地址:http://118.31.68.110:8081/index.html 账号:root 密码: ...

  7. SpringBoot | 第二十六章:邮件发送

    2019独角兽企业重金招聘Python工程师标准>>> 前言 讲解了日志相关的知识点后.今天来点相对简单的,一般上,我们在开发一些注册功能.发送验证码或者订单服务时,都会通过短信或者 ...

  8. 猿人学题库十六题——js加密_表情包+sojson6.0——满天坑

    猿人学题库十六题--js加密_表情包+sojson6.0 1.  首先 进入 浏览器的开发者工具, 进去后首先还是 无线debug ,找到 debugg 对应的行数,右击选择 never pause ...

  9. 【Vue2.0】—vue-router(二十六)

    [Vue2.0]-vue-router(二十六) 一.vue-router 的理解 它是vue 的一个插件库,专门用来实现 SPA 应用 二.对 SPA 应用的理 单页 Web 应用(single p ...

最新文章

  1. MVC5路由系统机制详细讲解
  2. 介绍几本专业的书籍,一起学习
  3. 《Java 核心技术卷1 第10版》学习笔记------ 接口(Interface)
  4. php网站开发期末大作业,大学生期末网页大作业
  5. JAVA跟MYSQL数据库交互_【编写Java程序实现与Mysql数据库的连接,并交互性的实现简单查询,删除,修改,排序,显示等操作】...
  6. NAT网关自动去掉TCP syn包的时间戳
  7. 调试mysql语句_Mysql sql 语句调试
  8. WebWork + Spring + iBatis + MySql 实例(Jonson)
  9. vscode html可视化,在VSCode中可视化数据结构
  10. 程序人生 | 文艺程序员使用代码发展诗歌
  11. 数据结构实习(欢迎大家一起在评论区交流学习)
  12. Google Play的APK下载(APK Downloader)解决方案
  13. 开淘宝店怎么注册公司?开淘宝店是否需要去工商局登记注册公司
  14. 医学数字成像设备中计算机系统的作用包括,《医学影像设备学》题 集
  15. matlab输出的图怎么设置网格背景图片,4.11Python数据处理篇之Matplotlib系列(十一)---图例,网格,背景的设置...
  16. 可用的rtmp卫视直播地址
  17. 论如何写一份好的前端面试简历
  18. 中关村“染指”番茄花园
  19. Science 期刊及其子刊
  20. Adobe acrobat Pro翻页显示正在启动识别、正在加载图像解决方法

热门文章

  1. 【Xshell免费版,不用去找破解(ftp也一样)】
  2. 解决微软Edge浏览器和IE浏览器下载无反应的问题
  3. 层次分析法实例:选择旅游目的地
  4. Maven下载及目录结构
  5. app小窗口悬浮工具_悬浮窗大师下载-悬浮窗大师 v6.6_手机乐园
  6. 学习逆变(DC-AC)电路和LLC的基本工作原理。
  7. JS_SDK实现网站应用QQ登录功能-QQ互联(小白易懂)
  8. 笔记本电脑硬盘不见了_笔记本电脑找不到硬盘原因及解决方法
  9. 基于51单片机的三角波信号发生器设计
  10. java des ecb_【转】 java DES ECB模式对称加密解密