如何在Spring Boot 2.6中从YAML加载列表
如何在Spring Boot 2.6中从YAML加载列表
我试图从application.yml
文件中加载一个字符串数组。这是配置:
ignore: filenames: - .DS_Store - .hg
这是类的片段:
@Value("${ignore.filenames}") private List igonoredFileNames = new ArrayList<>();
同一类中还有其他配置加载得很好。我的YAML文件中没有制表符。尽管如此,我仍然会得到以下异常:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'ignore.filenames' in string value "${ignore.filenames}"
admin 更改状态以发布 2023年5月23日
我的猜测是,@Value
无法处理“复杂”类型。您可以使用像这样的属性类:
@Component @ConfigurationProperties('ignore') class IgnoreSettings { Listfilenames }
请注意:这段代码是Groovy—— 不是Java——为了让例子更简短!请查看评论以获取适应提示。
查看完整的示例https://github.com/christoph-frick/so-springboot-yaml-string-list