如何使用Spring获取Enum的值

时间:2010-11-09 19:59:10

标签: java spring enums

<bean id="xyz" class="com.abc" >
  <property name="name">
    <bean         
            class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
        <property name="staticField" value="com.abc.staticname" />
     </bean>
   </property>
</bean>

这是我之前用来设置类com.abc名称的方式。现在,这些名字应该来自另一个枚举。如何访问枚举值以设置类com.abc的名称属性?

2 个答案:

答案 0 :(得分:7)

我不明白为什么你不能继续使用FieldRetrievingFactoryBean,这就是它的用途。

虽然比你的例子所说的更容易使用。此外,还有更简单的基于模式的语法,它可以做同样的事情,<util:constant>

两种方法都记录在案(并进行了比较)here

(请记住,枚举值只是枚举类中的静态字段)

答案 1 :(得分:2)

您可以使用枚举名称作为值,Spring会自动检测到它是枚举类型的静态字段并使用它。例如,如果你有一个枚举com.mycompany.MyEnum,其值为SOMEVAL,ANOTHERVAL,你可以使用:

<property name="myEnumProperty" value="SOMEVAL" />

这将允许您完全避免使用FieldRetrievingFactoryBean和<util:constant>