2010-11-09 33 views
6
<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的name屬性?如何使用Spring獲取Enum的值

回答

7

我不明白爲什麼你不能繼續使用FieldRetrievingFactoryBean,這就是它的用途。

雖然這比使用示例建議的使用更容易一些。此外,還有更簡單的基於模式的語法,它可以做同樣的事情,<util:constant>

這兩種方法都記錄(和比較)here

(請記住,枚舉值在枚舉類只是靜態字段)

+0

謝謝,鏈接非常有幫助。 – Shamik 2010-11-10 23:26:56

2

您可以只使用枚舉名作爲值,Spring將自動檢測到它的枚舉類型的靜態字段,並用它。因此,舉例來說,如果你有值SOMEVAL,ANOTHERVAL枚舉com.mycompany.MyEnum,你可以使用:

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

這將讓你避免FieldRetrievingFactoryBean和<util:constant>乾脆。