此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

@DynamicPropertySource

@DynamicPropertySource是可以应用于积分中方法的注释 需要注册动态属性以添加到PropertySourcesEnvironment对于ApplicationContext加载 集成测试。当您不知道 预先属性 – 例如,如果属性由外部资源管理 例如,对于由 Testcontainers 项目管理的容器。spring-doc.cadn.net.cn

以下示例演示了如何注册动态属性:spring-doc.cadn.net.cn

@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属性,以便从服务器延迟检索。

有关更多详细信息,请参阅使用动态属性源进行上下文配置spring-doc.cadn.net.cn