在我的application.yml文件中,我想定义一个规则列表。
rules:
- name: abc
value: something
- name: edf
value: something
然后我想定义一个像这样的服务
@Service
public class MyService {
public MyService(@Value("${rules}") List<Rule> rules) {
}
}
对于规则pojo来说,它是这样的。
public class Rule {
public String name, value;
}
目前,我正面临这些错误。
如果我让规则为空,它会抛出
can't convert String to List<Rule>
规则:[]
如果我保留这些值,它会抛出
could not resolve placeholder 'rules'
我真的不知道我做错了什么。
从Spring文档中,我发现了这一点。
使用@Value("${property}"(注释注入配置属性有时会很麻烦,尤其是当您正在工作时具有多个属性,或者您的数据本质上是分层的。Spring Boot提供了一种使用属性的替代方法它允许强类型bean管理和验证配置的
链接:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-具有外部配置类型安全配置属性
最后,我要介绍另一个班。
@Configuration
@ConfigurationProperties(prefix="rules")
public class Rules {
public List<Rule> list;
}
然后我在MyService
中自动布线。