【发布时间】:2020-02-07 11:32:35
【问题描述】:
我已经阅读了许多帖子、问题、示例以及它应该起作用的所有内容,但无论出于何种原因它都不起作用......
谁能告诉我为什么这不起作用?
@Configuration()
@PropertySource("users.yml")
@Data
@ConfigurationProperties
@EnableConfigurationProperties
public class UserConfig {
public String test;
public List<String> states;
public List<User> users;
@PostConstruct
public void print() {
System.out.println(this);
System.exit(0);
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String username;
private String pw;
private List<String> roles;
}
输出是 UserConfig(test='yeah im tested', states=[], users=[])
对于给定的 YAML
test: 'yeah im tested'
states:
- 'Up'
- 'Down'
users:
-
username: 'Gienek'
pw: 'niegienek'
roles:
- 'rola1'
- 'rola2'
注意:
使用states: 'Up','Down' 填充状态列表。
另请注意,它可以部分工作。
【问题讨论】:
-
不应该是@Value("${test}") private String test;
-
正如我已经指出的 - 这个特殊的
test字段 - 有效。UserConfig(test='yeah im tested', states=[], users=[]) -
保持你的值在 yaml 中以逗号分隔,比如状态:向上、向下....... @Value("${states}") String[] states
-
如注释中所述 - 是的,写为
states : val val的状态有效 - 没有@Value -
@SwaritAgarwal 整个
User对象怎么样?
标签: spring spring-boot yaml