|
对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
@DynamicPropertySource
@DynamicPropertySource是一个方法级注解,可用于注册要添加到PropertySources在Environment为
一ApplicationContext加载以进行集成测试。动态属性很有用
当您预先不知道属性的值时,例如,如果属性
由外部资源管理,例如由 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 | 注释static方法@DynamicPropertySource. |
| 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 | 注释static方法@DynamicPropertySource. |
| 2 | 接受DynamicPropertyRegistry作为论据。 |
| 3 | 注册动态server.port属性,以便从服务器延迟检索。 |
有关更多详细信息,请参阅使用动态属性源进行上下文配置。