小编典典

字符串列表的 Spring Boot yaml 配置

all

我正在尝试从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}"

阅读 99

收藏
2022-06-30

共1个答案

小编典典

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

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

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

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

2022-06-30