当前位置: 首页 > 知识库问答 >
问题:

使用Spring Boot将YAML属性绑定到Map类型

淳于兴朝
2023-03-14

我知道如果我把属性放在。yml文件如下:

list
  - item 1
  - item 2

我可以将它们绑定到java。util。列出或设置类型。如果yaml属性如下:

map:
  key1: value1
  key2: value2

我可以把它绑在地图上。我想知道是否可以将yml属性绑定到映射

共有2个答案

李辉
2023-03-14

谢谢它帮助了我:)我在这里发布了更具描述性的答案。

配置类-

@ConfigurationProperties(prefix = "configuration.mymapwithlist")
public class ConfigUtilClass implements IConfigUtilClass {
    private Map<String, List<String>> myMap = new HashMap<>();

    @Override
    public Map<String, List<String>> getMyMap() {
        return myMap;
    }

}

Yaml-

configuration: 
    mymapwithlist:
        myMap:
            key1:
                - value 1
                - value 2
                - value 3
                - value 4
            key2:
                - value 1
                - value 2
                - value 3
                - value 4
            '[key 3]':
                - value 1
                - value 2
                - value 3
                - value 4
            '[key 4]':
                - value 1
                - value 2
                - value 3
                - value 4

如果您的键有空格,请将键放入[键4]。

林鸿彩
2023-03-14

尝试添加以下内容:

private Map<String, List<String>> keysList;

把这个放进你的。yml文件

keysList:
    key1: 
        - value1
        - value2  
    key2: 
        - value2
        - value3
    key3: 
        - value3
        - value4

结果应该是列表映射:

keysList={key1=[值1,值2], key2=[值2,值3], key3=[值3,值4]}

如果你用这种方式

private Map keysList;

您将获得地图映射。

keysList={key1={0=value1,1=value2},key2={0=value2,1=value3},key3={0=value3,1=value4}}

 类似资料:
  • 我发现Spring Boot(或者一般的Spring)对yaml集合的处理有点奇怪。根据yaml规范的集合应该写在。yaml文件中,如下所示: 或 但是注释或(也尝试)都不能读取集合属性(返回null)。我所知道的唯一有效的方法是使用Spring Boot文档中描述的注释。 null 所以,我的问题是--如果我不能使用的话,什么是读取集合类型属性的好方法?同样奇怪的是,为什么逗号分隔格式有效,而不

  • 我试图将子类属性绑定到GridViewColumn。我有一个母类M1和三个不同的子类S1、S2和S3。GridViewColumn由类M1的对象填充。我希望将S2的一个属性绑定到这个GridViewColumn的头,而M1中没有实现这个属性。 有人能给我解释一下怎么做吗?

  • 我有以下代码: 生日属性的类型为java.time。LocalDate,并且属于类Person。因为我使用JPA,所以我不想使用JavaFX属性。上述代码无法编译。编译器的错误消息是: 我该如何解决这个问题? 更新:我的个人类具有以下代码: 控制器类:

  • 我正在开发一个简单的Java程序来完成一些简单的mySQL内容。它有一个用JavaFX制作的小GUI。 GUI的控制器有一个SimpleBoleanProperty,我们称之为X,它指示到数据库的连接状态。我将一些简单的东西绑定到它,比如按钮的disableProperty so send querys,如果没有连接,应该禁用它。到现在为止,一直都还不错。 我有一个标签,用于执行以下操作: 如果X

  • 如何在Spring Boot中将属性绑定到POJO? POJO类是第三方库类-我不能将@ConfigurationProperties放在那里 我知道一些实用程序类,如DataBinder,可以帮助,但可能有一个更快的方法。提前谢谢你。

  • servlet 可以按名称绑定对象属性到 HttpSession 实现,任何绑定到会话的对象可用于任意其他的 servlet,其属于同一个 ServletContext 且处理属于相同会话中的请求。 一些对象可能需要在它们被放进会话或从会话中移除时得到通知。这些信息可以从 HttpSessionBindingListener 接口实现的对象中获取。这个接口定义了以下方法,用于标识一个对象被绑定到会