首页 > 解决方案 > 在 Spring Boot 中使用自定义 YAML 文件初始化对象

问题描述

我有一个 Spring Boot 项目,文件resources夹中有两个 YAML 文件:

metrics.yml看起来像这样:

metrics:
    activeMetrics:
        -   type: TYPE_A
            value: 10
        -   type: TYPE_B
            value: 5

它的类如下所示:

@Data
@Component
@ConfigurationProperties("metrics")
public class ActiveMetrics {
    private final List<Metric> activeMetrics = new ArrayList<>();
}

主类注释为:

@PropertySources({
        @PropertySource("classpath:/metrics.yml"),
        @PropertySource("classpath:/project.yml")
})

应用程序启动后,activeMetrics列表为空,但是,如果我在列表中放置相同的配置,application.yml则成功初始化。

metrics.yml也加载成功,因为当路径不正确时,Spring Boot 会抛出异常。

如何用第二个 YAML 文件初始化这个 bean?

标签: javaspring-bootyaml

解决方案


推荐阅读