Jam*_*ker 1 java yaml spring-boot
我的 Spring Boot 应用程序似乎无法识别我的配置文件 (application.yml) 中的列表。以下是我正在尝试做的大致内容。
代码:
@Autowired
private Environment environment;
public class Config{
public Config(){
}
public List<String> getDateFields(){
return environment.getProperty("dates.fields", List.class);
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序.yml :
dates:
fields:
- date
- creationDate
Run Code Online (Sandbox Code Playgroud)
getDateFields上面返回空值。但是,如果我使用以下...
应用程序.yml :
dates:
fields: creationDate
Run Code Online (Sandbox Code Playgroud)
...它工作正常并将其作为列表返回(尽管是单值的)。为什么我无法从 application.yml 文件中获取列表?我尝试检查是否environment包含dates.fields, 并在使用列表版本时environment.containsProperty("dates.fields")返回false。
如果要使用 environment.getProperty("dates.fields", List.class); 将值作为 List 加载,请为列表属性使用逗号分隔格式;
dates:
fields: date, creationDate
Run Code Online (Sandbox Code Playgroud)
这条路对我来说很顺利。
但是,如果您想使用
dates:
fields:
- date
- creationDate
Run Code Online (Sandbox Code Playgroud)
然后最好使用以下方法从 yaml 文件加载属性。
@Component
@ConfigurationProperties(prefix = "dates")
public class Config{
private List<String> fields = new ArrayList<String>();
public List<String> getDateFields(){
return this.fields;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2603 次 |
| 最近记录: |