附录

参考文档的这一部分涵盖了适用于 Spring Framework 核心多个模块的主题。

Spring 属性

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

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

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

spring.aop.ajc.ignore

指示 Spring 在 Spring AOP 代理时忽略 ajc 编译的切面,恢复同时启用编织和 AspectJ 自动代理场景下的传统 Spring 行为。详见 AbstractAspectJAdvisorFactory

spring.aot.enabled

表示应用程序应使用 AOT 生成的产物运行。详见 提前编译优化AotDetector

spring.beaninfo.ignore

指示 Spring 在调用 JavaBeans Introspector 时使用 Introspector.IGNORE_ALL_BEANINFO 模式。详见 StandardBeanInfoFactory

spring.cache.reactivestreams.ignore

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

spring.classformat.ignore

指示 Spring 在类路径扫描期间忽略类格式异常,特别是在不支持的类文件版本情况下。详见 ClassPathScanningCandidateComponentProvider

spring.context.checkpoint

指定通用上下文检查点的属性。详见 启动时的自动检查点/恢复DefaultLifecycleProcessor

spring.context.exit

在上下文达到特定阶段时终止 JVM 的属性。详见 启动时的自动检查点/恢复DefaultLifecycleProcessor

spring.context.expression.maxLength

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

spring.expression.compiler.mode

编译 Spring Expression Language 表达式时使用的模式。

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.locking.strict

指示 Spring 在 Bean 创建期间强制执行严格锁定,而不是 6.2 默认应用的严格和宽松锁定混合。详见 DefaultListableBeanFactory

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 注解,则使用的默认封闭配置继承模式。详见 更改默认封闭配置继承模式