博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 2.2首个里程碑版本发布,改进性能和内存使用
阅读量:7074 次
发布时间:2019-06-28

本文共 1254 字,大约阅读时间需要 4 分钟。

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

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

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

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

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

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

大型配置文件的绑定是在启动时必须要进行的过程,现在明显变快了。这看起来是深受用户欢迎的改变,正如一个指出,对于先前的版本,“……在启动时加载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个里程碑版本。

阅读英文原文:

转载地址:http://oekml.baihongyu.com/

你可能感兴趣的文章
PowerShell应用之-批量执行SQL脚本
查看>>
职场加薪步步高升的五大法则
查看>>
增删主键及修改表名
查看>>
Gson库使用-排序字段(ExclusionStrategy)或者修改(FieldNamingStrategy)字段
查看>>
NTFS For Mac 的特点有哪些
查看>>
新技能,利用Reflector来修改dll引用
查看>>
Java编程的逻辑 (1) - 数据和变量
查看>>
我的屌丝giser成长记-研一篇(下)
查看>>
raft 分布式协议 -- mongodb
查看>>
[TypeScript] Using Lodash in TypeScript with Typings and SystemJS
查看>>
ASP.Net MVC开发基础学习笔记(1):走向MVC模式
查看>>
虚函数可不可以是内联函数
查看>>
据说看完这21个故事的人,30岁前都成了亿万富翁
查看>>
HDOJ-4505 小Q系列故事——电梯里的爱情
查看>>
【转】Navigation Drawer(导航抽屉)
查看>>
Linux Shell常用技巧(十)
查看>>
【从零之三(更)】自定义类中调用讯飞语音包错误解决办法
查看>>
【源代码】LinkedHashMap源代码剖析
查看>>
Android InputStream转Bitmap
查看>>
记录水电系统开发的心理【1】
查看>>