【发布时间】:2020-03-28 21:45:50
【问题描述】:
@DynamicPropertySource 属性是作为 Spring 框架 5.2.5 版的一部分添加的。 official documentation 表示:
此注解及其支持基础设施最初是 旨在允许来自基于测试容器的测试的属性 容易暴露于 Spring 集成测试。但是,此功能可能 也可用于任何形式的外部资源,其生命周期为 在测试的 ApplicationContext 之外维护。
还有一个基本的例子:
@SpringJUnitConfig(...)
@Testcontainers
class ExampleIntegrationTests {
@Container
static RedisContainer redis = new RedisContainer(); // ...
@DynamicPropertySource
static void redisProperties(DynamicPropertyRegistry registry) {
registry.add("redis.host", redis::getContainerIpAddress);
registry.add("redis.port", redis::getMappedPort);
} }
但是,我不明白...当我们拥有行为相同的 @PropertySource 时,这个新注释的用例是什么?
【问题讨论】:
标签: spring spring-boot