`

186. Spring Boot 2.0发布:番外篇

阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

关注spring boot微信公众号,第一时间了解最新的spring boot动态,当前已经更新到:188. Spring Boot 2.0 quartz :回顾 、187. Spring Boot 2.0小彩蛋 :动态 banner

 

需求缘起:

       在上一周发布了文章《Spring Boot 2.0终于正式发布》,但是看完总感觉少了点什么。^_^,是少加糖了,没甜到你心里去,好了,希望本篇文章可以走进你心里去,知道2.0到底可以给我带来什么。接下来就是见证奇迹的时刻了:

 

一、JDK的版本

       Spring Boot 2.0要求Java 8作为最低版本,同时支持Java 9 。

画外音:要想升级到Spring Boot 2.0的化,就要升级jdk到1.8的版本了,不然可能就无法正常运行了,另外就是升级到jdk 1.8的话,那么就可以享受1.8带来的特性了。

       那么对于1.8和1.9的java给我们带来什么新特性呢?

 

1.1 JDK1.8的新特性

       这里简单说明几点:

(1)接口中支持默认方法和静态方法

 

在jdk1.8之前,在接口中的方法都是抽象无法,是不允许有实现了,jdk1.8就支持实现了。

(2)函数式接口和Lambda表达式

函数式接口(Functional Interface)是只包含一个方法的抽象接口。

在Java 8中通过@FunctionalInterface注解,将一个接口标注为函数式接口,该接口只能包含一个抽象方法。

@FunctionalInterface注解不是必须的,只要接口只包含一个抽象方法,虚拟机会自动判断该接口为函数式接口。一般建议在接口上使用@FunctionalInterface注解进行声明,以免他人错误地往接口中添加新方法,如果在你的接口中定义了第二个抽象方法的话,编译器会报错。函数式接口是为Java 8中的lambda而设计的,lambda表达式的方法体其实就是函数接口的实现。

       “lambda表达式”是一段可以传递的代码,因为他可以被执行一次或多次。

(3)StreamAPI

Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。可以指定你希望对 集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。

(4)新的日期和时间 API

Java8 引入了一个新的日期和时间API,位于java.time包下。

Java8中有两大最为重要的改变。第一个是 Lambda 表达式 ;另外一 个则是Stream API(java.util.stream.*)

       具体怎么玩转jdk1.8,此博客就不详细展开了。

       关于1.8的特性了解可以参考:

《写给大忙人看的Java SE8》——Java8新特性总结:

https://www.cnblogs.com/justcooooode/p/7701260.html

JAVA8新特性[第四季]-强大的Stream API:

http://blog.csdn.net/liudongdong0909/article/details/77429875

 

画外音:spring boot 2.0最低版本使用的是jdk 1.8的,那么也就是你可以使用jdk 1.8的新特性来改进和优化你的代码了。

 

1.2 JDK1.9的新特性

       Jdk1.9看起来也是做了很大的升级,这里不展开说明,^_^,博主1.8还没玩明白呢,要想了解1.9新特性的可以参考:

Java 9 逆天的十大新特性:

http://blog.csdn.net/mxw2552261/article/details/79080678

二、第三方库升级

SpringBoot 2.0建立在Spring Framework 5之上,升级第三方库到最新的稳定版本,比如:Tomcat 8.5、Flyway 5、Hibernate 5.2、Thymeleaf 3。

这里我们说明下Thymeleaf3:

(1)Thymeleaf3是否是spring boot 2.0才支持的

       非也,非也,在spring boot 1.4的版本升级中,有这么一段话:

By default, Spring Boot uses Thymeleaf2.1 but it is now compatible with Thymeleaf 3 as well, check the updateddocumentation for more details.

       意思就是:默认情况下,Spring Boot使用的是Thymeleaf 2.1的版本,但是现在也能够兼容Thymeleaf 3的版本了。

画外音:spring boot在1.4的时候就兼容了Thymeaf 的版本,只是默认情况下使用的是2.1的版本而已。

       对于使用的是1.x的版本的,如果要使用Thymeaf的话,那么可以参考之前的一篇博客,《77. Spring Boot Use Thymeleaf 3【从零开始学SpringBoot】》:

http://412887952-qq-com.iteye.com/blog/2315193

画外音:在spring boot 1.4以上,spring boot 2.0以下,如果要使用Thymeaf 3的需要简单的配置才能支持;如果是spring boot 2.0的版本的话,只需要引入相应的starter即可支持了。

 

(2)Thymeleaf3的特性

       这里重要说一点的是,完整HTML5标志支持:Thymeleaf3.0 不再是基于XML结构的。由于引入新的解析引擎,模板的内容格式不再需要严格遵守XML规范。即不在要求标签闭合,属性加引号等等。当然,出于易读性考虑,还是推荐你按找XML的标准去编写模板。2.0版本的<hr>是会报错的,3.0之后<hr>就可以正常访问了。(博主这个特性特意测试了下,通过)。

画外音:在Thymeleaf 3版本中,标签没有闭合也是可以正常运行了。

       另外一些特性,在《77. Spring Boot Use Thymeleaf 3【从零开始学Spring Boot】》博客中也有略微提及,大家看这篇博客进行了解,这里就过多介绍了。

 

三、Quartz支持

       还记得之前的博客,在集成Quartz花费了不少功夫呢,现在好了,spring boot就直接支持了,只要添加如下依赖:

   <dependency> 

         <groupId>org.springframework.boot</groupId> 

         <artifactId>spring-boot-starter-quartz</artifactId> 

</dependency> 

       之后就可以享受quartz带来的功能了。自从了quartz,妈妈在也不担心,我不能按时回家吃饭了。

 

四、响应式编程

       为各种组件的响应式编程提供了自动化配置,如:Reactive Spring Data、Reactive Spring Security。那么什么是响应式编程呢?

       响应式编程(Reactive Programming),简称RP:响应式编程就是异步数据流编程。什么是流呢?任何事物都可以当做给一个流:变量、用户输入、属性、缓存,数据结构等。有点像Java中对象的定义:万事万物皆是对象。比如,系统中的添加文章就是一个单击事件一样的数据流,你能够监听这个流,并做出响应。

       具体这块的概念性的东西比较复杂,一方面大家可以找点资料了解下,另外一方面如果允许的话,也会在之后的博客中进行介绍。

       对于Spring Boot 2.0的新特性,还有很多,这里介绍的是重要的部分,也是可能和大家比较有关联的地方。

 

问题一:升级到Spring Boot 2.0

       对于要从Spring Boot 1.x升级到SpringBoot 2.0的话,官方是建议先升级到Spring Boot 1.5的版本,然后再升级到2.0的版本。对于是否要升级到2.0的话,还是要看当下的项目,当下已经在线上的项目,如果未使用2.0的特性的话,是可以保留在1.x的版本的。对于如果是新的项目,建议还是升级到2.0版本,因为这里不仅使用了jdk 1.8,而且还有这么多特性,这样有助于之后版本的升级。

 

问题二: 学习Spring Boot

       对于很多新手而言的话,对于Spring Boot还是不是很了解的,另外现在大部分的文章都是使用1.x的版本,那么对于初学者的话,是选择2.0学习,还是1.x的学习呢?这里建议:如果能够自行学习的,可以直接选择2.0版本进行学习,如果确实有困难的,选择1.x的进行学习。对于使用1.x学习的,学习好之后,过渡到2.0版本是很轻松简单的事情。因为通过这两篇文章的介绍,Spring Boot 2.0并不是彻底改了编码方式,只是进行升级和优化而已,所以不用担心,学习了1.x版本之后,2.0还得重新了解一遍。这是一些小建议而已,具体根据自己的情况进行学习。

 

问题三: 博主写博客会使用哪个版本?

       目前博客中会使用Spring Boot 1.5的版本和Spring Boot 2.0的版本进行讲解,对于Spring Boot 2.0的话,之后会介绍新特性;对于1.5的版本在写一些文章的时候,会使用此版本,具体会根据实际情况,进行选择合适的版本进行说明,在每篇文章中,如果使用到了Spring Boot的话,会注明所使用的版本号。

 

 

 

分享到:
评论

相关推荐

    2018.02.Spring Boot 2.0 Cookbook 2nd

    《2018.02.Spring Boot 2.0 Cookbook 2nd》是一本专注于Spring Boot 2.0开发的实战指南,旨在帮助开发者更好地理解和应用这一强大的Java框架。Spring Boot以其快速启动、简化配置以及丰富的生态系统,在企业级开发中...

    learning spring boot 2.0

    第二版的发布表明作者在原有基础上增加了更多关于Spring Boot 2.0的新特性介绍和使用指导。 描述中提到本书是英文高清版,2017年11月出版,属于第二版。由于本书的出版时间相对较新,因此其中关于Spring Boot的知识...

    spring-boot-configuration-processor-2.3.12.RELEASE-API文档-中文版.zip

    赠送jar包:spring-boot-configuration-processor-2.3.12.RELEASE.jar; 赠送原API文档:spring-boot-configuration-processor-2.3.12.RELEASE-javadoc.jar; 赠送源代码:spring-boot-configuration-processor-...

    Packt.Spring.Boot.2.0.Cookbook.2nd.Edition.

    Packt.Spring.Boot.2.0.Cookbook.2nd.Edition. Packt.Spring.Boot.2.0.Cookbook.2nd.Edition.

    Learning Spring Boot 2.0 Second Edition

    《Learning Spring Boot 2.0 Second Edition》是学习Spring Boot 2.0的重要参考资料,它深入浅出地介绍了这个流行的Java开发框架的核心概念和技术。Spring Boot简化了Spring应用程序的初始搭建以及开发过程,旨在...

    Learning Spring Boot 2.0 - Second Edition (mobi) English version

    英文原版第二版,Spring Boot 2.0 by Greg L. Turnquist (Author) Key Features Get up to date with the defining characteristics of Spring Boot 2.0 in Spring Framework 5 Learn to perform Reactive ...

    Learning Spring boot 2.0

    《Learning Spring Boot 2.0》是一本专为开发者设计的深入指南,旨在帮助读者全面理解和掌握Spring Boot 2.0这一强大框架。Spring Boot以其快速启动、简化配置和易于开发的特点,在Java企业级应用开发中占据着重要的...

    Spring Boot 2.0深度实践之核心技术篇

    《Spring Boot 2.0深度实践之核心技术篇》是一份深入探索Spring Boot 2.0核心功能和技术的教程,旨在帮助开发者充分利用这个流行的Java开发框架,提升开发效率和项目质量。Spring Boot以其“开箱即用”的特性,简化...

    Spring Boot 学习笔记完整教程.pdf

    Spring Boot是一种旨在简化新Spring应用的初始搭建以及开发过程的框架。它使用了特定的方式来配置Spring,使得开发者不必再进行繁琐的配置工作。Spring Boot的核心思想包括自动配置和starters,这让创建独立的、生产...

    spring-boot-test-2.2.8.RELEASE-API文档-中文版.zip

    赠送jar包:spring-boot-test-2.2.8.RELEASE.jar; 赠送原API文档:spring-boot-test-2.2.8.RELEASE-javadoc.jar; 赠送源代码:spring-boot-test-2.2.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-boot-...

    spring-boot-autoconfigure-2.5.5-API文档-中文版.zip

    赠送jar包:spring-boot-autoconfigure-2.5.5.jar; 赠送原API文档:spring-boot-autoconfigure-2.5.5-javadoc.jar; 赠送源代码:spring-boot-autoconfigure-2.5.5-sources.jar; 赠送Maven依赖信息文件:spring-...

    spring-boot-autoconfigure-2.6.3-API文档-中文版.zip

    赠送jar包:spring-boot-autoconfigure-2.6.3.jar; 赠送原API文档:spring-boot-autoconfigure-2.6.3-javadoc.jar; 赠送源代码:spring-boot-autoconfigure-2.6.3-sources.jar; 赠送Maven依赖信息文件:spring-...

    《Learning Spring Boot 2.0》高清版

    《Learning Spring Boot 2.0》是一本专为Java开发者设计的高级教程,全面深入地讲解了Spring Boot 2.0这一强大框架的各个方面。Spring Boot简化了Java应用程序的初始设置和配置,使得开发人员可以更快地专注于业务...

    Spring Boot 2.0官方参考文档

    ### Spring Boot 2.0官方参考文档知识点梳理 #### 一、Spring Boot 2.0简介与系统需求 - **Spring Boot**是一个基于Spring框架的全新子项目,它旨在简化新Spring应用的初始搭建以及开发过程。该版本为2.0.0.BUILD-...

    spring-boot2.0-中文参考指南

    Spring Boot 2.0是Java开发领域中备受瞩目的框架更新,它极大地简化了Spring应用程序的创建、配置和管理过程。这个中文参考指南是开发者掌握Spring Boot 2.0核心特性和最佳实践的重要资源。 Spring Boot的核心理念...

    about learning Spring Boot. Spring Boot 教程、技术栈示例代码,快速简单上手教程.zip

    Spring Boot 2.0 Mysql 5.6 JDK 1.8 Maven license Spring Boot 使用的各种示例,以最简单、最实用为标准,此开源项目中的每个示例都以最小依赖,最简单为标准,帮助初学者快速掌握 Spring Boot 各组件的使用。 本...

    spring-boot-autoconfigure-2.3.12.RELEASE-API文档-中文版.zip

    赠送jar包:spring-boot-autoconfigure-2.3.12.RELEASE.jar; 赠送原API文档:spring-boot-autoconfigure-2.3.12.RELEASE-javadoc.jar; 赠送源代码:spring-boot-autoconfigure-2.3.12.RELEASE-sources.jar; 赠送...

    spring-boot-actuator-autoconfigure-2.3.12.RELEASE-文档-中英对照版.zip

    赠送jar包:spring-boot-actuator-autoconfigure-2.3.12.RELEASE.jar; 赠送原API文档:spring-boot-actuator-autoconfigure-2.3.12.RELEASE-javadoc.jar; 赠送源代码:spring-boot-actuator-autoconfigure-2.3.12....

Global site tag (gtag.js) - Google Analytics