10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

Spring Boot 2.2 首个里程碑版本发布,改进性能和内存使用

2019 年 3 月 19 日

Spring Boot 2.2首个里程碑版本发布,改进性能和内存使用

Spring Boot 团队最近发布了2.2.0 M1版本,这是 Spring Boot 2.2 的首个里程碑版本。它包括性能和内存方面的改进、Kubernetes 检测及第三方库更新。该版本解决了140多个问题


自该版本起,默认情况下将禁用 JMX。来自 Spring 团队的 Brian Clozel 指出:


“该功能看起来没有得到广泛的应用,并且占用了大量资源,因此,我们正在重新考虑其在 2.2 系列版本中的默认使用问题。”


其他启动性能改进包括:提供全局延迟初始化、删除冗余 JPA 扫描、大型配置文件的更快绑定及更高效的 bean 创建和注入。


全局延迟初始化(通过 spring.main.lazy.initialization 启用)是 2.2 版本引入的一个值得注意的新功能,通过延迟所有 bean 的创建显著地减少启动时间。然而,这需要做出权衡。随着所需 bean 的初始化,对 HTTP 资源的初始请求延迟可能会增加,后续请求则不受影响。另一个可能更具风险的权衡是,通常在启动时会发生的任何与 bean 有关、连接或依赖项错误都会延迟到启动后发生。


通过禁用其他 JPA 扫描(如:Hibernate)改善了启动性能。Spring Boot 已经提供了自己的 JPA 扫描,因而,所有其他扫描都是冗余,只会使应用程序启动时间变长。


大型配置文件的绑定是在启动时必须要进行的过程,现在明显变快了。这看起来是深受用户欢迎的改变,正如一个Reddit用户指出,对于先前的版本,“……在启动时加载 YAML 文件(大约 5000 个属性)需要 10 秒钟。”


因为 bean 的创建和注入已经直接影响了启动时间和内存使用,所以,Spring Boot 如今在选择创建和注入哪个 bean 方面变得更加明智。特别是现在只有在 actuator 被启用和暴露(例如通过 HTTP)的情况下,才创建与 Spring Boot actuator 相关的端点。关于在自动配置中使用 bean 方面也变得更明智。如果只是部分自动配置使用 bean,但总是注入到构造函数中,那么就没必要创建和注入到那些甚至不用的其他部分。具体来说,如今自动配置对依赖 bean 的使用更加精准。


@ConditionalOnCloudPlatform 注解可以通过检测应用程序何时在 Kubernetes 平台上运行来接收更新。这使得用户或其他框架易于有条件地配置只应用于 Kubernetes 的功能或实现。


在依赖方面,AssertJ、Mockito、Kafka、Spring HATEOAS 及 Spring Data 是一些升级了的著名第三方库。其他一些依赖项也进行了升级。


Java EE 依赖项也有变化。所有 Java EE 依赖项用等效的 Jakarta EE 依赖项替换。这是从 Java EE 到 Jakarta EE 迁移的一部分,是 Eclipse 基金会下 EE 的新名称。


里程碑版本是 Spring Boot 版本开发周期中的重大事件。它们表明版本正在巩固,并且大多数主要错误和问题已经得到了解决。它们通常预示最终版本即将发布,主要用于微调和润色剩余问题。2.0 系列中的过往版本有 4 到 7 个里程碑版本。


阅读英文原文:Spring Boot 2.2 Reaches First Milestone Release With Performance and Memory Improvements


2019 年 3 月 19 日 08:006167
用户头像

发布了 199 篇内容, 共 69.3 次阅读, 收获喜欢 281 次。

关注

评论

发布
暂无评论
发现更多内容

Python进阶系列文章汇总

Kaito

Python 爬虫

灵雀云开源项目 Kube-OVN 亮相开源基础设施峰会

York

灵雀云 Kubernetes k8s Kube-OVN

从七日更,到28天写作挑战,我无法拒绝的原因

梁龙先森

前端 编程语言 28天写作

要想软件“一想之美”,UI测试少不了

华为云开发者社区

软件 测试 华为云

volatile 关键字精讲

伯阳

Java volatile 关键字 后端开发 多线程与高并发

Kube-OVN 0.5.0 发布,支持 NetworkPolicy、用户自定义网卡和MTU

York

灵雀云 Kubernetes k8s Kube-OVN

Kube-OVN 0.6.0 发布,支持 IPv6、流量镜像及更多功能

York

灵雀云 Kubernetes k8s Kube-OVN

Yarn RM写ZNode超数据量限制bug修复

笨小康

大数据 zookeeper YARN

价值 - 价值的底色(一)

石云升

读书笔记 投资 28天写作 价值

SpringCloud从入门到精通01---父项目创建

Felix

SpringCloud Eureka 高可用架构

边缘计算安全技术研究

华为云原生团队

云计算 大数据 云原生 边缘计算 华为云

Kube-OVN再更新! v0.8.0 支持网关高可用以及网络监控集成

York

灵雀云 Kubernetes k8s Kube-OVN

ETL都没弄懂,谈什么大数据 ?我用一分钟给你整明白

智分析

ETL

Kube-OVN v 0.7.0 发布,IPAM、子网和安全功能增强

York

灵雀云 Kubernetes k8s Kube-OVN

VUE项目性能优化实践——通过懒加载提升页面响应速度

Geek_Willie

Vue

代码也能“杀”虫:此虫,真虫非Bug也

华为云开发者社区

代码 华为云 modelarts

软件界旷世之架:测试驱动开发(TDD)之争

华为云开发者社区

软件 测试 TDD 代码 devcloud

技术实录 | 灵雀云基于 OVN 的 Kubernetes 网络架构解析

York

灵雀云 Kubernetes k8s Kube-OVN

架构师训练营技术知识点

三板斧

架构师训练营第 1 期

“持证”就能上岗 京东绿色内推招聘通道开启

京东科技开发者

云计算 大数据 程序人生

文档驱动开发模式在 AIMS 中的应用与实践

华为云开发者社区

Web 代码 API 文档

Java中定时器Timer致命缺点(附学习方法)

叫练

学习 定时任务 多线程 定时器 技术学习

新思科技网络安全研究中心发现Bouncy Castle中的漏洞

InfoQ_434670063458

新思科技 Bouncy Castle

SpringCloud从入门到精通02---支付模块01

Felix

灵雀云Kube-OVN:基于OVN的开源Kubernetes网络实践

York

灵雀云 Kubernetes k8s Kube-OVN

再谈自研开源Kube-OVN, 设计思路及实现原理

York

灵雀云 Kubernetes k8s Kube-OVN

Spark HistoryServer日志解析&清理异常

笨小康

大数据 spark hdfs

大作业一:架构设计方案评审

Nick~毓

云算力矿机租赁挖矿APP系统开发|云算力矿机租赁挖矿软件开发

系统开发

Hive的调优你都知道那些?

大数据老哥

大数据 hadoop hive

软件测试--缺陷报告

测试人生路

软件测试

Spring Boot 2.2首个里程碑版本发布,改进性能和内存使用-InfoQ