如何在SpringBoot中将YAML列表绑定到Java列表?

2022-04-14 00:00:00 list bind yaml java spring-boot

我的YML文件中有一个列表,需要将其绑定到Java SprringBoot应用程序中,我该如何操作?

fruits: - Apple - Bannana

理想情况下,我想要

@Value("${filters.siteID}") List siteIDs;


解决方案

文档中有一个"24.6.1 Loading YAML"

定义您的列表如下

my:
    fruits:
        - Apple
        - Bannana

并创建一个配置属性类来表示它:

@Component
@ConfigurationProperties(prefix="my")
public class FruitConfig {
    private final List<String> fruits = new ArrayList<String>();
    public List<String> getFruits() {
        return this.fruits;
    }
}

然后在代码中需要配置的位置使用此类

@Autowired
FruitConfig fruitConfig;

...  {
    System.out.println(fruitConfig.getFruits());
}

直接绑定到@Value似乎不起作用,因为@Value的工作方式

相关文章