首页 > 解决方案 > 是否可以使用 springboot 注释 @Value 从 application.properties 文件中获取 Map 值

问题描述

我需要从文件中获取静态键值对数据。application.properties是否可以使用 SpringBoot 注释这样做@Value

建议将不胜感激。

例子: languageMap={'1'='English','2'='French'}

@Value($("languageMap"))
Map<String,String> languageMap;

标签: javaspringspring-mvcspring-bootspring-batch

解决方案


您可以使用文档中提到的@ConfigurationProperties注解注入 Map 。

https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#boot-features-external-config-loading-yaml]

根据该文档,您可以加载属性:

language.map[0]='英语'

language.map[1]='法语'

@ConfigurationProperties(prefix="language")
public class LanguageMap{

    private List<String> languages= new ArrayList<String>();

    public List<String> getLanguages() {
        return this.languages;
    }
}

推荐阅读