上下文失败阈值
自 Spring Framework 6.1 起,引入了一种上下文失败阈值策略,该策略有助于避免重复尝试加载失败的 ApplicationContext
。默认情况下,失败阈值设置为 1
,这意味着对于给定的上下文缓存键(参见上下文缓存),只会尝试加载一次 ApplicationContext
。任何后续尝试加载相同上下文缓存键的 ApplicationContext
都会立即抛出 IllegalStateException
,并附带一条错误消息,解释该尝试已被预先跳过。这种行为允许单独的测试类和测试套件更快地失败,避免重复尝试加载一个永远不会成功加载的 ApplicationContext
——例如,由于配置错误或缺少在当前环境中阻止上下文加载的外部资源。
你可以通过命令行或构建脚本配置上下文失败阈值,方法是设置一个名为 spring.test.context.failure.threshold
的 JVM 系统属性,并赋予一个正整数作为值。或者,你也可以通过 SpringProperties 机制设置相同的属性。
备注
如果您希望有效地禁用上下文失败阈值,可以将该属性设置为一个非常大的值。例如,在命令行中,您可以通过 -Dspring.test.context.failure.threshold=1000000
来设置系统属性。