将yml配置解析为Enum

时间:2019-08-07 14:49:56

标签: java spring enums yaml

假设我有一个yml文件,例如:

foo:
  bar1: 
    en: hello world
  bar2:
    nl: Hallo Wereld

我也有一个配置文件:

@Component
@ConfigurationProperties(prefix = "foo")
public class MyProperties {
    private Map<LanguageEnum, String> greetings;
}

为了获得清晰的代码,我想将枚举定义为:

public enum LanguageEnum {
    ENGLISH("en"),
    DUTCH("nl");

    private String key;

    Languages(String key) {
        this.key = key;
    }

    @Override
    public String toString() {
        return key;
    }

}

但是Spring无法将我的枚举映射到枚举值,出现此错误:

无法绑定LanguageEnum下的属性

更新应用程序的配置。以下值是有效的:

en
nl

如何根据我枚举中的某些函数告诉Spring解析yaml文件上的值?例如。 fromValue

0 个答案:

没有答案