Spring如何映射自定义pojo列表

时间:2018-12-12 23:18:47

标签: spring

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

rules:
   - name: abc
     value: something
   - name: edf
     value: something

然后我要定义这样的服务

@Service
public class MyService {
   public MyService(@Value("${rules}") List<Rule> rules) {
   }
}

对于Rule pojo,就像这样。

public class Rule {
   public String name, value;
}

当前,我正面临这些错误。

  1. 如果我将规则留空,则会抛出can't convert String to List<Rule>

    规则:[]

  2. 如果我保留这些值,它将抛出could not resolve placeholder 'rules'

我真的不知道我在做什么错。

1 个答案:

答案 0 :(得分:0)

从Spring文档中,我发现了这一点。

  

使用@Value(“ $ {property}”)批注注入配置   属性有时会很麻烦,尤其是在您工作的时候   具有多个属性,或者您的数据本质上是分层的。   Spring Boot提供了使用属性的另一种方法   使强类型的Bean可以控制和验证配置   您的应用程序

链接:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-properties

最后,我必须介绍另一个课程。

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

然后我将其自动连接到MyService

相关问题