首页 > 解决方案 > Spring YAML 属性如何引用对象类型的另一个属性

问题描述

我有一个 YAML 文件,其中一个属性引用了另一个属性。

例如

sidh:
    sftp:
        profile1:
            host: xxxx.com
            local:
                directory:
                    download: localDownload
            user: abctest
            password: Team334


    sf:
      mf:
        clientId: 2324
        clientSecret: sd23
        refreshToken: 23sds
        url: test.salesforce.com

    feeds:
        mf_company:
          processor: com.xxxx.ABC
          pattern: ABC_*
          sf: mf   # How to reference sidh.sf.mf
          sft: profile1 # How to reference sidh.sftp.profile1 

我正在使用 Spring,但我找不到任何关于属性 ( sidh.feeds.mf_company.sf or sft) 如何引用另一个对象类型属性 ( sidh.sf.mf, sidh.sftp.profile1) 的现成库/示例。我可以编写自定义代码来表示这个 YAML 并创建引用。

我的问题是:是否有任何现成的库可用于处理这种情况?

标签: javaspringyaml

解决方案


您的方案没有开箱即用的解决方案。 YAML只支持没有任何对象实现的简单键值字典。

如果您希望将配置用作对象,则需要创建自己的实现,就像您在代码中所说的那样。


推荐阅读