java - spring 将 yml 中的字符串列表(一级)绑定到 Java 列表
问题描述
我有一个带有以下字符串列表的 yml 文件:
list-of-strings:
- el1
- el2
- el3
我已经实现了一个配置类来检索它:
@ConfigurationProperties(prefix = "list-of-strings")
public class ListOfStringsConfig {
private List<String> listOfStrings;
public List<String> getListOfStrings) {
return listOfStrings;
}
}
它无法检索字符串列表(当我访问 listOfStrings 时,它会引发 NullPointerException)。我注意到,如果我通过放置 2 个级别来更改 yml,例如:
list:
strings:
- el1
- el2
- el3
并相应地修改配置:
@ConfigurationProperties(prefix = "list")
public class ListOfStringsConfig {
private List<String> strings;
public List<String> getStrings) {
return strings;
}
}
它按预期工作。因为对于我的案例来说,有 2 个级别根本没有意义,我想知道是否有办法让它与第一个用例一起工作,所以在 yaml 中只有一个级别。
解决方案
如果你真的只需要一个级别,那么你需要删除前缀。它的工作方式是前缀+变量名来映射值。
话虽如此,我不会推荐它,因为拥有已经存在的东西会容易得多。
旁注:如果您只有一个要获取的值,则可以@Value
改用
推荐阅读
- python - 如何为连接到 Vertica 或 PostgreSQL 的 python 应用程序实现连接池?
- asp.net - 从数据库中选择二值图像并显示在图像控件中
- php - 是否可以互连 PHP 应用程序和 laravel 应用程序?
- python-3.x - 如何使用 python 从 cassandra 输出中提取值?
- android - 如何重置 LineGraph 和 x 轴标签
- java - 在 Dao 实现中如何进行以下操作?
- c# - 如何将数据表值插入数据库
- java - Spring Boot 应用程序一次构建为 WAR 和 JAR
- ruby-on-rails - Rails ActionCable 中“无法找到带有标识符的订阅”的原因是什么?
- html - 帮助引导弹出窗口