跳到主要内容
版本:7.0.3

使用上下文初始化器进行上下文配置

Hunyuan 7b 中英对照 Context Configuration with Context Initializers

要使用上下文初始化器为测试配置 ApplicationContext,请在测试类上添加 @ContextConfiguration 注解,并将 initializers 属性配置为一个数组,该数组包含实现 ApplicationContextInitializer 接口的类的引用。然后,这些声明的上下文初始化器将用于初始化为测试加载的 ConfigurableApplicationContext。请注意,每个声明的初始化器所支持的具体的 ConfigurableApplicationContext 类型必须与所使用的 SmartContextLoader 创建的 ApplicationContext 类型兼容(通常是 GenericApplicationContext)。此外,初始化器的调用顺序取决于它们是否实现了 Spring 的 Ordered 接口,或者是否带有 Spring 的 @Order 注解或标准的 @Priority 注解。以下示例展示了如何使用初始化器:

@ExtendWith(SpringExtension.class)
// ApplicationContext将从TestConfig中加载
// 并由TestAppCtxInitializer进行初始化
@ContextConfiguration(
classes = TestConfig.class,
initializers = TestAppCtxInitializer.class) 1
class MyTest {
// 类体...
}
  • 通过使用配置类和初始化器来指定配置。

你也可以完全省略在@ContextConfiguration中声明XML配置文件、Groovy脚本或组件类的步骤,而只声明ApplicationContextInitializer类,这些类将负责在上下文中注册Bean——例如,通过程序方式从XML文件或配置类中加载Bean定义。以下示例展示了如何操作:

@ExtendWith(SpringExtension.class)
// ApplicationContext 将由 EntireAppInitializer 初始化
// 而 EntireAppInitializer 会在此上下文中注册 Bean
@ContextConfiguration(initializers = EntireAppInitializer.class) 1
class MyTest {
// 类体...
}
  • 仅通过初始化器来指定配置。