就在今天Spring Boot2.0.0.RELEASE
正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,而后Spring Boot官方又赶忙把 GitHub 上发布的 v2.0.0.RELEASE 版本进行了撤回。到了下午将问题修复后,又从新进行了上传,至此Spring Boot2.0正式推出!html
要知道这是Spring Boot1.0发布4年以后第一次重大修订,所以有多的新功能和特性值得你们期待!在Spring Boot官方博客中咱们了解到:Spring Boot2.0版本经历了 17 个月的开发,有 215 个不一样的使用者提供了超过 6800 次的提交,并表示很是感谢提供贡献的每一位用户,和全部对这些里程碑版本提供重要反馈的早期采用者。java
熟悉Spring Boot/Cloud的技术者们都知道,Spring Boot依赖于Spring,而Spring Cloud又依赖于Spring Boot,所以Spring Boot2.0的发布正式整合了Spring5.0的不少特性,一样后面Spring Cloud最新版本的发布也须要整合最新的Spring Boot2.0内容。react
新版本值得关注的亮点有哪些:git
基于 Java 8,支持 Java 9github
也就是说Spring Boot2.0的最低版本要求为JDK8,据了解国内大部分的互联网公司系统都还跑在JDK1.6/7上,所以想要升级到Spring Boot2.0的同窗们注意啦,同时支持了Java9,也仅仅是支持而已。web
响应式编程redis
使用 Spring WebFlux/WebFlux.fn提供响应式 Web 编程支持, Webflux 是一个全新的非堵塞的函数式 Reactive Web 框架,能够用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现很是好,此功能来源于Spring5.0。spring
Spring Boot2.0也提供对响应式编程的自动化配置,如:Reactive Spring Data、Reactive Spring Security 等sql
HTTP/2支持数据库
在Tomcat, Undertow 和 Jetty 中均已支持 HTTP/2
对Kotlin支持
引入对 Kotlin 1.2.x 的支持,并提供了一个 runApplication 函数,让你经过惯用的 Kotlin 来运行 Spring Boot 应用程序。
全新的执行器架构
全新的执行器架构,支持 Spring MVC, WebFlux 和 Jersey
支持 Quartz
Spring Boot1.0并无提供对 Quartz 的支持,以前出现了各类集成方案,Spring Boot2.0给出了最简单的集成方式。
Security
大大的简化了安全自动配置
Metrics
Metrics 方面,Spring Boot 2引入了Micrometer,来统一metrics的规范,使得开发人员更好的理解和使用metrics的模块,而不须要关心对接的具体存储是什么。
监控方面
Spring Boot 2 加强了对 Micrometer 的集成。RabbitMQ、JVM 线程和垃圾收集指标会自动进行 instrument 监控,异步控制器(controller)也会自动添加到监控里。经过集成,还能够对 InfluxDB 服务器进行监控。
数据方面
Thymeleaf 3
Spring Boot 2支持了Thymeleaf 3,Thymeleaf 3相对于Thymeleaf 2性能提高可不是一点点,由于2.0的性能确实不咋地,同时也使用了新的页面解析系统。
OAuth 2.0
同时也加入了 对于OAuth 2.0的支持, 使得开发人员更加友好的使用spring-security来完成权限模块的开发
依赖组件的更新
最后还有一个小彩蛋,Spring Boot2.0支持了动态gif的启动logo打印.
Spring 如今做为Java开源界的老大,它的一举一动都影响着行业的技术方向,在此次发布的 Release Notes中发现有不少的技术都尚未了解过,也分享出来:
WebFlux 是什么?
WebFlux 模块的名称是 spring-webflux,名称中的 Flux 来源于 Reactor 中的类 Flux。Spring webflux 有一个全新的非堵塞的函数式 Reactive Web 框架,能够用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现很是好。
非阻塞的关键预期好处是可以以小的固定数量的线程和较少的内存进行扩展。在服务器端 WebFlux 支持2种不一样的编程模型:
默认状况下,Spring Boot 2使用Netty WebFlux,由于Netty在异步非阻塞空间中被普遍使用,异步非阻塞链接能够节省更多的资源,提供更高的响应度。经过比较Servlet 3.1非阻塞I / O没有太多的使用,由于使用它的成本比较高,Spring WebFlux打开了一条实用的通路。
值得注意的是:支持reactive编程的数据库只有MongoDB, redis, Cassandra, Couchbase
HTTP/2
相比 HTTP/1.x,HTTP/2 在底层传输作了很大的改动和优化:
JOOQ
JOOQ 是基于Java访问关系型数据库的工具包。JOOQ 既吸收了传统ORM操做数据的简单性和安全性,又保留了原生sql的灵活性,它更像是介于 ORMS和JDBC的中间层。对于喜欢写sql的码农来讲,JOOQ能够彻底知足你控制欲,能够是用Java代码写出sql的感受来。
Lettuce
Lettuce是一个可伸缩的线程安全的Redis客户端,用于同步,异步和反应使用。 多个线程能够共享同一个RedisConnection。它利用优秀netty NIO框架来高效地管理多个链接。 支持先进的Redis功能,如Sentinel,集群,流水线,自动从新链接和Redis数据模型。
国内使用Jedis的居多,看来之后要多研究研究Lettuce了。
HikariCP
HikariCP是一个高性能的JDBC链接池。Hikari是日语“光”的意思。多是目前java业界最快的数据库链接池。
Flyway
Flyway是独立于数据库的应用、管理并跟踪数据库变动的数据库版本管理工具。用通俗的话讲,Flyway能够像SVN管理不一样人的代码那样,管理不一样人的sql脚本,从而作到数据库同步。
Gson
Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson等等
看完 Spring Boot 2.0 Release Notes ,发现又有不少不知道的新技术了,之后有的学了
经过以上内容能够看出Spring Boot2.0相对于1.0增长了不少新特性,而且最重要的是Spring Boot2.0依赖的JDK最低版本是1.8,估计国内大多互联网公司还么这么激进。另一个新的重大版本更新以后,不免会有一些小Bug什么的,每每须要再发布几个小版本以后,才会慢慢稳定下来。
所以个人建议是,若是不是特别想使用Spring Boot2.0上面提到的新特性,就尽可能不要着急进行升级,等Spring Boot2.0完全稳定下来后再使用。若是想要升级也请先从早期的版本升级到Spring Boot1.5X系列以后,再升级到Spring Boot2.0版本,Spring Boot2.0的不少配置内容和Spring Boot1.0不一致须要注意。
Spring Boot1.0发布以后给咱们带来了全新的开发模式,Spring Boot2.0发布标志着Spring Boot已经走向成熟,对Java界带来的变革已经开启!
前两天在看池建强老师文章时,发现老师恰好也介绍了Spring Boot2.0,其中有这么一个观点:Java 语言为何可以长期占据编程兵器排行榜第一名的位置呢?由于命好。
Java 能长盛不衰,主要是命好。每当人们以为 Java 不行了的时候,总会有英雄横刀救美。
最初 Java 开发出来不知道有什么用的时候,发现能够用 Applet 在网页上作动画。后来企业级软件开发时代 JavaEE 大行其道,开源社区 Spring 桃李满天下。等到了移动时代,人们以为 Java 要完蛋了,Google 拍马救市,收购并开放了 Android 平台,当家语言就是 Java,因而 Java 再次焕发勃勃生机。目前大数据领域,Java 一样是当仁不让的好手。
如今 Spring Framework 那套东西使用了十几年,正当你们被长达几千行的 ApplicationContext 配置文件折磨的死去活来的时候,Spring Boot 诞生了。什么是 Spring Boot?用来简化 Spring 应用程序开发的。
换句话说就是,当你以为 Java 很差用的时候,我作了个轻量级的 S,让你好好用 Java。等你觉的 S 也不够轻了,我作了个 SB,让你以为 S 仍是挺轻的。
从2002年Rod Johnson的interface21
到现在的Spring Boot2.0
,Spring 走过了16年的春秋,经历了N多的贡献者,Spring 也从一个小小的开源框架,发展成Java领域最成功的开源软件没有之一!同时作为一名Java开发从业者,也特别的感谢Spring这类的开源组织,为推进企业级开发作了巨大的贡献,全世界的Java开发者都是它的受益者!
向Spring致敬,向开源致敬!
Spring Boot 2.0 Release Notes
Spring Boot 2.0 goes GA
Spring Boot 2.0 同步至 Maven 仓库出错,已撤回……