弹簧引导配置中列表的环境变量
对于我的 Spring Boot 应用程序,我正在尝试使用保存 in 列表的环境变量(请参阅下面的配置)。properties.topics
application.yml
properties:
topics:
- topic-01
- topic-02
- topic-03
我使用配置文件来填充属性bean(请参阅此弹簧文档),如下所示
import java.util.ArrayList;
import java.util.List;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties("properties")
public class ApplicationProperties {
private List<String> topics = new ArrayList<>();
public void setTopics(List<String> topics) {
this.topics = topics;
}
public List<String> getTopics() {
return this.topics;
}
}
通过使用环境变量,我可以更改列表的内容,而无需更改 .但是,到目前为止,我能找到的所有示例仅适用于环境变量仅包含单个值的情况,而不是我的情况下的值集合。application.yml
编辑:
为了在@vancleff的评论之后明确这一点,我不需要将环境变量的值保存到。application.yml
另一个编辑:
我认为通过过度简化我的问题,我向自己开了一枪。@LppEdd答案与我的问题中给出的示例配合得很好。但是,如果我需要一个更复杂的结构,而不是一个简单的字符串主题名称的集合,会发生什么情况。例如,类似
properties:
topics:
-
name: topic-01
id: id-1
-
name: topic-02
id: id-2
-
name: topic-03
id: id-3