Java 将配置属性转换为枚举值

Java 将配置属性转换为枚举值,java,spring,enums,Java,Spring,Enums,我有一个配置文件,其中包含以下行: login.mode=PASSWORD 和一个枚举 public enum LoginMode { PASSWORD, NOT_PASSWORD, OTHER } 还有一颗春豆 <bean id="environment" class="a.b.c.Environment" init-method="init"> <property name="loginMode" value="${login.mode}"/> </be

我有一个配置文件,其中包含以下行:

login.mode=PASSWORD
和一个枚举

public enum LoginMode {
PASSWORD, NOT_PASSWORD, OTHER }
还有一颗春豆

<bean id="environment" class="a.b.c.Environment" init-method="init">
  <property name="loginMode" value="${login.mode}"/>
</bean>
如何将配置文件的属性(字符串)转换为LoginMode的相应枚举值

编辑:我知道如何获取字符串输入的枚举值,但问题是另一个: 如果我尝试这样做:

public class Environment {
    private LoginMode loginMode;

    public LoginMode getLoginMode() {
        return loginMode;
    }

    public void setLoginMode(String loginMode) {
        this.loginMode = LoginMode.valueOf(loginMode);
    }
}
spring抱怨getter和setter没有相同的输入和输出类型

Bean property 'loginMode' is not writable or has an invalid setter method. Does the    parameter type of the setter match the return type of the getter?
你可以这样做

LoginMode.valueOf("someString");
编辑: 尝试使用转换器

编辑2: 还请检查以下内容:

Spring会自动将输入字符串转换为所需枚举的相应值。

可能的重复项不是该问题的重复项,请参见编辑。因此这可能会有所帮助?感谢您的建议,但答案非常简单。。。我会把它贴在哪里转换字符串?在bean配置中还是在环境类中?
LoginMode.valueOf("someString");
 LoginMode.valueOf(valueOfProperty);