|
此版本仍在开发中,尚未稳定。如需最新的稳定版本,请使用 Spring Framework 7.0.6! |
@DynamicPropertySource
@DynamicPropertySource 是一个注解,可应用于集成测试类中需要向为集成测试加载的 ApplicationContext 的 Environment 中添加的 动态 属性的方法。当您事先不知道属性值时,动态属性非常有用——例如,如果这些属性由外部资源管理,如 Testcontainers 项目管理的容器。
以下示例演示如何注册动态属性:
-
Java
-
Kotlin
@ContextConfiguration
class MyIntegrationTests {
static MyExternalServer server = // ...
@DynamicPropertySource (1)
static void dynamicProperties(DynamicPropertyRegistry registry) { (2)
registry.add("server.port", server::getPort); (3)
}
// tests ...
}
| 1 | 使用@DynamicPropertySource注解一个static方法。 |
| 2 | 接受一个DynamicPropertyRegistry作为参数。 |
| 3 | 注册一个动态server.port属性,该属性将从服务器惰性检索。 |
@ContextConfiguration
class MyIntegrationTests {
companion object {
@JvmStatic
val server: MyExternalServer = // ...
@DynamicPropertySource (1)
@JvmStatic
fun dynamicProperties(registry: DynamicPropertyRegistry) { (2)
registry.add("server.port", server::getPort) (3)
}
}
// tests ...
}
| 1 | 使用@DynamicPropertySource注解一个static方法。 |
| 2 | 接受一个DynamicPropertyRegistry作为参数。 |
| 3 | 注册一个动态server.port属性,该属性将从服务器惰性检索。 |
参见使用动态属性源的上下文配置获取更多详细信息。