此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cadn.net.cn

CDS 系列

类数据共享 (CDS) 是一项 JVM 功能,可帮助减少 Java 应用程序的启动时间和内存占用。spring-doc.cadn.net.cn

要使用此功能,应为 应用。Spring Framework 提供了一个钩子点来简化 档案。存档可用后,用户应通过 JVM 标志选择使用它。spring-doc.cadn.net.cn

创建 CDS 归档文件

当应用程序退出时,可以为应用程序创建 CDS 存档。Spring 框架提供了一种作模式,在该模式下,一旦ApplicationContext已刷新。在此模式下,所有非惰性初始化的单例 已实例化,并且InitializingBean#afterPropertiesSet回调 调用;但生命周期尚未启动,并且ContextRefreshedEvent还没有 已发布。spring-doc.cadn.net.cn

要创建存档,必须指定两个额外的 JVM 标志:spring-doc.cadn.net.cn

要创建 CDS 存档,您的 JDK/JRE 必须具有基础映像。如果您将上面的标志添加到 您的启动脚本,您可能会收到如下所示的警告:spring-doc.cadn.net.cn

-XX:ArchiveClassesAtExit is unsupported when base CDS archive is not loaded. Run with -Xlog:cds for more info.

基本 CDS 归档文件通常是开箱即用的,但如果需要,也可以通过发出以下命令来创建 命令:spring-doc.cadn.net.cn

$ java -Xshare:dump

使用档案

存档可用后,添加-XX:SharedArchiveFile=application.jsa前往您的初创公司 脚本来使用它,假设application.jsa文件。spring-doc.cadn.net.cn

要检查 CDS 缓存是否有效,您可以使用 (仅用于测试目的,不在生产环境中)-Xshare:on哪 打印错误消息,如果无法启用 CDS,则退出。spring-doc.cadn.net.cn

要了解缓存的有效性,您可以通过添加 一个额外的属性:-Xlog:class+load:file=cds.log.这将创建一个cds.log每个 尝试加载类及其源。从缓存加载的类应具有 “共享对象文件”源,如以下示例所示:spring-doc.cadn.net.cn

[0.064s][info][class,load] org.springframework.core.env.EnvironmentCapable source: shared objects file (top)
[0.064s][info][class,load] org.springframework.beans.factory.BeanFactory source: shared objects file (top)
[0.064s][info][class,load] org.springframework.beans.factory.ListableBeanFactory source: shared objects file (top)
[0.064s][info][class,load] org.springframework.beans.factory.HierarchicalBeanFactory source: shared objects file (top)
[0.065s][info][class,load] org.springframework.context.MessageSource source: shared objects file (top)

如果无法启用 CDS,或者您有大量未从缓存加载的类,请确保 创建和使用存档时,满足以下条件:spring-doc.cadn.net.cn


APP信息