【问题标题】:spring boot loads yaml list as mapspring boot 将 yaml 列表加载为 map
【发布时间】:2015-12-14 20:02:39
【问题描述】:

我有一个这样的 yaml 文件

      framework:
              generalConfiguration:
                    cassandra:
                      fe:
                        seeds:
                            - fire201
                            - fire202
                        dc: DC

还有一颗豆子

public class ConfigurationBean{

private Map<String, Object> generalConfiguration;

public Map<String, Object> getGeneralConfiguration() {
    return generalConfiguration;
}

public void setGeneralConfiguration(Map<String, Object> generalConfiguration) {
    this.generalConfiguration = generalConfiguration;
}

一个bean工厂方法

@Bean(name = "configurationDataHolder")
@ConfigurationProperties(prefix = "framework")
public ConfigurationBean configurationBean(){
    return new ConfigurationBean();
}

我的问题是 spring boot 填充了 generalConfiguration Map 其中: fe 是一个带键的 Map

    seeds
    dc

dc 是一个字符串值条目。 而seeds就是这样一张地图:

0 -> fire201
1 -> fire202

我希望种子以列表的形式填充。

知道怎么做吗?

【问题讨论】:

  • 顺便说一句,当我用 snakayaml 加载这个 yaml 时,它会按预期将“种子”作为列表加载:new Yaml().load(fileName))

标签: java spring spring-boot yaml


【解决方案1】:

您的 generalConfiguration 使用原始类型作为值,因此您没有为框架提供任何线索,因为它应该如何处理它。当您查看您的配置时,这对您来说可能很明显,但我们通过逐一浏览关系并采用最佳选项来处理配置。

您的Object 没有给出任何提示。在同一个结构中混合简单的值和映射也是一种味道。

【讨论】:

  • 谢谢@Stephane,我会改变我的结构。
猜你喜欢
  • 2021-07-11
  • 2021-04-05
  • 2019-07-08
  • 2016-10-24
  • 2016-04-06
  • 1970-01-01
  • 2016-01-17
  • 1970-01-01
  • 2016-07-13
相关资源
最近更新 更多