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

将Yaml中的列表映射到Spring Boot中的对象列表

邢昂然
2023-03-14
available-payment-channels-list:
  xyz: "123"
  channelConfigurations:
    -
      name: "Company X"
      companyBankAccount: "1000200030004000"
    -
      name: "Company Y"
      companyBankAccount: "1000200030004000"
    @ConfigurationProperties(prefix = "available-payment-channels-list")
    @Configuration
    @RefreshScope
    public class AvailableChannelsConfiguration {

        private String xyz;

        private List<ChannelConfiguration> channelConfigurations;

        public AvailableChannelsConfiguration(String xyz, List<ChannelConfiguration> channelConfigurations) {
            this.xyz = xyz;
            this.channelConfigurations = channelConfigurations;
        }

        public AvailableChannelsConfiguration() {

        }

        // getters, setters


        @ConfigurationProperties(prefix = "available-payment-channels-list.channelConfigurations")
        @Configuration
        public static class ChannelConfiguration {
            private String name;
            private String companyBankAccount;

            public ChannelConfiguration(String name, String companyBankAccount) {
                this.name = name;
                this.companyBankAccount = companyBankAccount;
            }

            public ChannelConfiguration() {
            }

            // getters, setters
        }

    }
   nested exception is java.lang.IllegalStateException: 
    Cannot convert value of type [java.lang.String] to required type    
    [io.example.AvailableChannelsConfiguration$ChannelConfiguration] 
    for property 'channelConfigurations[0]': no matching editors or 
    conversion strategy found]

有什么线索吗?这里出了什么问题?

共有1个答案

尉迟正奇
2023-03-14

原因一定在别的地方。仅使用Spring Boot1.2.2开箱即用,没有配置,它只是工作。看看这个回购协议--你能让它破掉吗?

https://github.com/konrad-garus/so-yaml

你确定YAML文件看起来和你粘贴的一模一样吗?没有多余的空格、字符、特殊字符、错误缩进或诸如此类的东西?是否有可能在搜索路径的其他地方使用了另一个文件,而不是您所期望的文件?

 类似资料:
  • 我正在尝试在我的应用程序中注入列表。我的Spring Boot应用程序中Java对象列表的yml文件。 我已经看到了其他类似问题的一些答案,这些问题将Yaml中的列表映射到Spring Boot中的对象列表,但我有不同的输出错误。 我的YAML文件 我还创建了Bucket类 以及我的配置类,我在其中将列表注入YAML 当Spring Boot开始执行时,我出现以下错误: 我也尝试过简单的字符串列表

  • YAML文件: 配置类: 我希望@value注释允许我注入相应的属性值,但这似乎不起作用(注入'id'字段似乎工作得很好)。

  • 问题内容: 在我的Spring Boot应用程序中,我具有以下内容的application.yaml配置文件。我想将其作为带有通道配置列表的Configuration对象注入: 我想用PaymentConfiguration对象列表填充@Configuration对象: 我使用@Autowired构造函数将其作为普通bean注入。xyz的值正确填充,但是当Spring尝试将yaml解析为对象列表时

  • 我正在尝试将yml文件映射到Spring boot应用程序中具有字符串键和PromotionPolicy值的HashMap,并使用默认的Spring boot实现来解析这些值,但当我尝试从映射中读取值时,PromotionPolicy对象只包含所有实例的默认值[0,false,false]。 我的yml是: 我拥有的模型是: 组件java类如下: 尝试在此处显示值: 我的输出如下: 而我希望结果包

  • 给定: 我想把所有的车都标出来。将轮胎分为单独的轮胎板。我知道我可以做一个

  • 背景: 我已经阅读了大量关于如何使用ConfigurationProperties从config中读取列表的示例。。见下文 将Yaml中的列表映射到Spring Boot中的对象列表 https://github.com/konrad-garus/so-yaml https://www.boraji.com/spring-boot-configurationproperties-example .