Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring如何映射自定义pojo列表_Spring - Fatal编程技术网

Spring如何映射自定义pojo列表

Spring如何映射自定义pojo列表,spring,Spring,在application.yml文件中,我想定义一个规则列表 rules: - name: abc value: something - name: edf value: something 然后我想定义一个这样的服务 @Service public class MyService { public MyService(@Value("${rules}") List<Rule> rules) { } } 目前,我面临着这些错误 如果我将

在application.yml文件中,我想定义一个规则列表

rules:
   - name: abc
     value: something
   - name: edf
     value: something
然后我想定义一个这样的服务

@Service
public class MyService {
   public MyService(@Value("${rules}") List<Rule> rules) {
   }
}
目前,我面临着这些错误

  • 如果我将规则留空,它将抛出
    无法将字符串转换为列表

    规则:[]

  • 如果我保留这些值,它将抛出
    无法解析占位符“规则”


  • 我真的不知道我做错了什么。

    从Spring文档中,我找到了这个

    使用@Value(“${property}”)注释注入配置 属性有时会很麻烦,尤其是在您正在工作的情况下 具有多个属性或您的数据本质上是分层的。 Spring Boot提供了另一种处理属性的方法 它允许强类型bean管理和验证配置 你的申请

    链接:

    最后,我要介绍另一门课

    @Configuration
    @ConfigurationProperties(prefix="rules")
    public class Rules {
       public List<Rule> list;
    }
    
    @配置
    @配置属性(前缀=“规则”)
    公共阶级规则{
    公开名单;
    }
    
    然后我在
    MyService
    中自动连接它

    @Configuration
    @ConfigurationProperties(prefix="rules")
    public class Rules {
       public List<Rule> list;
    }