附录

本部分参考文档涵盖了适用于 Spring 框架核心中的多个模块的主题。

Spring 属性

SpringProperties 是一个用于控制 Spring 框架某些底层方面的属性的静态持有者。用户可以通过 JVM 系统属性或通过 SpringProperties.setProperty(String key, String value) 方法以编程方式配置这些属性。如果部署环境不允许自定义 JVM 系统属性,则可能需要后者。作为替代方案,这些属性可以在类路径根目录中的 spring.properties 文件中配置,例如,部署在应用程序的 JAR 文件中。

下表列出了所有当前支持的 Spring 属性。

表 1. 支持的 Spring 属性
名称 描述

spring.aot.enabled

指示应用程序应使用 AOT 生成的工件运行。有关详细信息,请参阅 提前优化AotDetector

spring.beaninfo.ignore

指示 Spring 在调用 JavaBeans Introspector 时使用 Introspector.IGNORE_ALL_BEANINFO 模式。有关详细信息,请参阅 CachedIntrospectionResults

spring.cache.reactivestreams.ignore

指示 Spring 的缓存基础设施忽略 Reactive Streams 的存在,特别是 Reactor 的 Mono/Flux@Cacheable 方法返回类型声明中。有关详细信息,请参阅 CacheAspectSupport

spring.classformat.ignore

指示 Spring 在类路径扫描期间忽略类格式异常,特别是对于不支持的类文件版本。有关详细信息,请参阅 ClassPathScanningCandidateComponentProvider

spring.context.checkpoint

指定通用上下文检查点的属性。有关详细信息,请参阅 启动时自动检查点/恢复DefaultLifecycleProcessor

spring.context.exit

用于在上下文到达特定阶段时终止 JVM 的属性。有关详细信息,请参阅 启动时自动检查点/恢复DefaultLifecycleProcessor

spring.context.expression.maxLength

用于 XML bean 定义、@Value 等中的 Spring 表达式语言 表达式的最大长度。

spring.expression.compiler.mode

Spring 表达式语言 编译表达式时使用的模式。

spring.getenv.ignore

指示 Spring 在 Spring Environment 属性(例如,配置字符串中的占位符)无法以其他方式解析的情况下忽略操作系统环境变量。有关详细信息,请参见 AbstractEnvironment

spring.jdbc.getParameterType.ignore

指示 Spring 完全忽略 java.sql.ParameterMetaData.getParameterType。请参见 使用对象列表进行批处理操作 中的说明。

spring.jndi.ignore

指示 Spring 忽略默认的 JNDI 环境,作为一种优化,适用于从一开始就永远不会找到任何内容以进行此类 JNDI 回退搜索的场景,从而避免重复的 JNDI 查找开销。有关详细信息,请参见 JndiLocatorDelegate

spring.objenesis.ignore

指示 Spring 忽略 Objenesis,甚至不尝试使用它。有关详细信息,请参见 SpringObjenesis

spring.test.aot.processing.failOnError

一个布尔标志,用于控制在Spring TestContext Framework 中的 AOT 处理过程中遇到的错误是否会导致导致整个过程失败的异常。请参见 测试的提前时间支持

spring.test.constructor.autowire.mode

如果测试类上不存在 @TestConstructor,则要使用的默认测试构造函数自动装配模式。请参见 更改默认测试构造函数自动装配模式

spring.test.context.cache.maxSize

Spring TestContext Framework 中的上下文缓存的最大大小。请参见 上下文缓存

spring.test.context.failure.threshold

Spring TestContext Framework 中尝试加载 ApplicationContext 时遇到的错误的失败阈值。请参见 上下文失败阈值

spring.test.enclosing.configuration

如果测试类上不存在 @NestedTestConfiguration,则要使用的默认封闭配置继承模式。请参见 更改默认封闭配置继承模式