SpringBoot2
2018.3月Spring Boot2.0发布,是Spring Boot1.0发布4年之后第一次重大修订。Spring Boot2.0版本经历了 17 个月的开发,有 215 个不同的使用者提供了超过 6800 次的提交。
新版本值得关注的亮点有哪些:
基于 Java 8,Spring5.0
也就是说Spring Boot2.0的最低版本要求为JDK8,同时支持了Java9。
基于Spring5.0实现响应式编程。使用 Spring WebFlux/WebFlux.fn提供响应式 Web 编程支持, Webflux 是一个全新的非堵塞的函数式 Reactive Web 框架,可以用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现非常好。
Spring Boot2.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 Boot1.0并没有提供对 Quartz 的支持,之前出现了各种集成方案,Spring Boot2.0给出了最简单的集成方式。
Security
大大的简化了安全自动配置
Metrics
Metrics方面,Spring Boot 2引入了Micrometer,来统一metrics的规范,使得开发人员更好的理解和使用metrics的模块,而不需要关心对接的具体存储是什么。
监控方面
Spring Boot 2 增强了对 Micrometer 的集成。RabbitMQ、JVM 线程和垃圾收集指标会自动进行 instrument 监控,异步控制器(controller)也会自动添加到监控里。通过集成,还可以对 InfluxDB 服务器进行监控。
数据方面
- db方面,默认引入了HikariCP,替代了之前的tomcat-pool作为底层的数据库连接池, 对比于tomcat-pool, HikariCP拥有更好的性能,总而言之就是提高了db的访问速度
- JOOQ的支持
- Redis方面, 默认引入了Lettuce, 替代了之前的jedis作为底层的redis链接方式
- MongoDB\Hibernate优化
Thymeleaf 3
Spring Boot 2支持了Thymeleaf 3,Thymeleaf 3相对于Thymeleaf 2性能提升可不是一点点,因为2.0的性能确实不咋地,同时也使用了新的页面解析系统。
OAuth 2.0
同时也加入了 对于OAuth 2.0的支持, 使得开发人员更加友好的使用spring-security来完成权限模块的开发
依赖组件的更新
- Jetty 9.4
- Tomcat 8.5
- Flyway 5
- Hibernate 5.2
- Gradle 3.4
- Thymeleaf 3.0
迁移注意事项:
在 Spring Boot 2.0 中,许多配置属性被重新命名/删除,开发人员需要更新application.properties
/ application.yml
相应的配置。为了帮助你解决这一问题,Spring Boot 发布了一个新spring-boot-properties-migrator
模块。一旦作为该模块作为依赖被添加到你的项目中,它不仅会分析应用程序的环境,而且还会在启动时打印诊断信息,而且还会在运行时为您暂时迁移属性。在您的应用程序迁移期间,这个模块是必备的:
1 |
<dependency> |
注意:完成迁移后,请确保从项目的依赖关系中删除此模块。
SpringBoot GitHub地址:https://github.com/spring-projects/spring-boot
SpringBoot 官方文档: https://spring.io/guides/gs/spring-boot/
SpringBoot2的更多相关文章
- SpringBoot2.x开发案例之整合Quartz任务管理系统
基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目. 基于spring-boot +quartz 的CRUD任务管理系统: https://gitee.com ...
- springboot2 webflux 响应式编程学习路径
springboot2 已经发布,其中最亮眼的非webflux响应式编程莫属了!响应式的weblfux可以支持高吞吐量,意味着使用相同的资源可以处理更加多的请求,毫无疑问将会成为未来技术的趋势,是必学 ...
- (六)SpringBoot2.0基础篇- Redis整合(JedisCluster集群连接)
一.环境 Redis:4.0.9 SpringBoot:2.0.1 Redis安装:Linux(Redhat)安装Redis 二.SpringBoot整合Redis 1.项目基本搭建: 我们基于(五) ...
- Springboot2.0(Spring5.0)中个性化配置项目上的细节差异
在一般的项目中,如果Spring Boot提供的Sping MVC不符合要求,则可以通过一个配置类(@Configuration)加上@EnableWebMvc注解来实现完全自己控制的MVC配置.但此 ...
- Springboot2新特性概述
官方说明: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes 起码 JDK 8 和支持 ...
- springboot2.0.3源码篇 - 自动配置的实现,发现也不是那么复杂
前言 开心一刻 女儿: “妈妈,你这么漂亮,当年怎么嫁给了爸爸呢?” 妈妈: “当年你爸不是穷嘛!‘ 女儿: “穷你还嫁给他!” 妈妈: “那时候刚刚毕业参加工作,领导对我说,他是我的扶贫对象,我年轻 ...
- spring-boot-2.0.3源码篇 - pageHelper分页,绝对有值得你看的地方
前言 开心一刻 说实话,作为一个宅男,每次被淘宝上的雄性店主追着喊亲,亲,亲,这感觉真是恶心透顶,好像被强吻一样.........更烦的是我每次为了省钱,还得用个女号,跟那些店主说:“哥哥包邮嘛么叽. ...
- Activiti(二) springBoot2集成activiti,集成activiti在线设计器
摘要 本篇随笔主要记录springBoot2集成activiti流程引擎,并且嵌入activiti的在线设计器,可以通过浏览器直接编辑出我们需要的流程,不需要通过eclipse或者IDEA的actiB ...
- SpringBoot2.0之四 简单整合MyBatis
从最开始的SSH(Struts+Spring+Hibernate),到后来的SMM(SpringMVC+Spring+MyBatis),到目前的S(SpringBoot),随着框架的不断更新换代,也为 ...
- springBoot2.0+redis+fastJson+自定义注解实现方法上添加过期时间
springBoot2.0集成redis实例 一.首先引入项目依赖的maven jar包,主要包括 spring-boot-starter-data-redis包,这个再springBoot2.0之前 ...
随机推荐
- SQLite3 C/C++ 开发接口简介
SQLite3 C/C++ 开发接口简介 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和 ...
- Office 365 - For security reasons DTD is prohibited in this XML document
博客地址:http://blog.csdn.net/FoxDave 今天在测试东西的时候发现在本机运行CSOM代码或使用Office 365 PowerShell时,出现了如下错误: Connec ...
- MVC4中使用Uploadify3.2
你使用过 GMail 中附件上传吗?带有上传进度,可以取消正在进行的上传,使用 Uploadify 插件,你也可以做到. Uploadify 是 JQuery 一个著名的上传插件,利用 Flash 技 ...
- <Web Crawler><Java><thread-safe queue>
Basic Solution The simplest way is to build a web crawler that runs on a single machine with single ...
- L306 词汇题
Public acceptance of rabbit as an economical source of protein depends on how aggressively producers ...
- web.config 冲突的解决办法 (主目录子目录分别帮定域名导至出现错误)
IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...
- python day02 作业答案
1. (1).false (2).false 2. (1).8 (2).4 3. (1).6 (2).3 (3).false (4).3 (5).true (6).true (7) ...
- [转]熵(Entropy),交叉熵(Cross-Entropy),KL-松散度(KL Divergence)
https://www.cnblogs.com/silent-stranger/p/7987708.html 1.介绍: 当我们开发一个分类模型的时候,我们的目标是把输入映射到预测的概率上,当我们训练 ...
- Linux不在显示器上方总是显示企鹅
/********************************************************************************* * Linux不在显示器上方总是显 ...
- Vim 文件coding gbk格式
只需在 ~/.vimrc设置一致即可.文件编辑可正常显示中文,cat,不能正常显示,显示乱码,详情参考上篇. set fileencodings=utf-8,ucs-bom,gb18030,gbk,g ...