字符串列表的 Spring Boot yaml 配置

新手上路,请多包涵

我正在尝试从 application.yml 文件加载字符串数组。这是配置:

 ignore:
    filenames:
        - .DS_Store
        - .hg

这是课程:

 @Value("${ignore.filenames}")
private List<String> igonoredFileNames = new ArrayList<>();

同一个类中还有其他配置可以很好地加载。我的 YAML 文件中没有选项卡。不过,我得到以下异常:

 Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'ignore.filenames' in string value "${ignore.filenames}"

原文由 Bahadır Yağan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 791
2 个回答

我的 猜测 是, @Value 无法处理“复杂”类型。您可以使用这样的道具类:

 @Component
@ConfigurationProperties('ignore')
class IgnoreSettings {
    List<String> filenames
}

请注意: 此代码是 Groovy - 不是 Java - 以保持示例简短!有关如何采用的提示,请参阅评论。

查看完整示例 https://github.com/christoph-frick/so-springboot-yaml-string-list

原文由 cfrick 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 application.yml 中使用逗号分隔值

ignoreFilenames: .DS_Store, .hg

用于访问的java代码

@Value("${ignoreFilenames}")
String[] ignoreFilenames

这是工作 ;)

原文由 Ahmet Vehbi Olgaç 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进