对于最新稳定版本,请使用Spring Framework 7.0.1spring-doc.cadn.net.cn

@ContextConfiguration

@ContextConfiguration定义用于确定如何 加载并配置应用上下文用于积分测试。具体说来@ContextConfiguration声明应用上下文资源地点或者 元件用来加载上下文。spring-doc.cadn.net.cn

资源位置通常是XML配置文件或位于 类路径,而组件类通常为@Configuration类。然而 资源位置也可以指文件系统中的文件和脚本,以及组件 类可以是@Component@Service课程,等等。详情请参见组件类别spring-doc.cadn.net.cn

以下示例展示了一个@ContextConfiguration指代XML的注释 文件:spring-doc.cadn.net.cn

@ContextConfiguration("/test-config.xml") (1)
class XmlApplicationContextTests {
	// class body...
}
1 指的是XML文件。
@ContextConfiguration("/test-config.xml") (1)
class XmlApplicationContextTests {
	// class body...
}
1 指的是XML文件。

以下示例展示了一个@ContextConfiguration指涉类的注释:spring-doc.cadn.net.cn

@ContextConfiguration(classes = TestConfig.class) (1)
class ConfigClassApplicationContextTests {
	// class body...
}
1 指的是一门课。
@ContextConfiguration(classes = [TestConfig::class]) (1)
class ConfigClassApplicationContextTests {
	// class body...
}
1 指的是一门课。

作为声明资源位置或组件类的替代方案或补充, 你可以使用@ContextConfiguration宣布应用上下文初始化器类。 以下示例展示了这样的情况:spring-doc.cadn.net.cn

@ContextConfiguration(initializers = CustomContextInitializer.class) (1)
class ContextInitializerTests {
	// class body...
}
1 声明初始化器类。
@ContextConfiguration(initializers = [CustomContextInitializer::class]) (1)
class ContextInitializerTests {
	// class body...
}
1 声明初始化器类。

你可以选择性地使用@ContextConfiguration声明上下文加载器作为策略 井。不过请注意,通常你不需要显式配置加载器, 因为默认加载程序支持初始化器以及任一资源地点或 元件.spring-doc.cadn.net.cn

以下示例同时使用了位置和加载器:spring-doc.cadn.net.cn

@ContextConfiguration(locations = "/test-context.xml", loader = CustomContextLoader.class) (1)
class CustomLoaderXmlApplicationContextTests {
	// class body...
}
1 同时配置位置和自定义加载器。
@ContextConfiguration("/test-context.xml", loader = CustomContextLoader::class) (1)
class CustomLoaderXmlApplicationContextTests {
	// class body...
}
1 同时配置位置和自定义加载器。
@ContextConfiguration提供继承资源位置的支持,或 配置类以及由超类声明的上下文初始化器 或者封闭类。

参见情境管理@Nested测试类配置,以及@ContextConfigurationJavadocs提供更多细节。spring-doc.cadn.net.cn