2010-11-09 28 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> 

Đây là cách trước đây tôi đã sử dụng để đặt tên của lớp com.abc. Bây giờ, các tên nên đến từ một enum khác. Làm cách nào để truy cập giá trị enum để đặt thuộc tính tên của lớp com.abc?Cách sử dụng Spring để nhận giá trị của một Enum

Trả lời

7

Tôi không hiểu tại sao bạn không thể tiếp tục sử dụng FieldRetrievingFactoryBean, đó là mục đích của nó.

Dễ sử dụng hơn một chút so với ví dụ của bạn. Ngoài ra, có cú pháp dựa trên lược đồ dễ dàng hơn, thực hiện điều tương tự, <util:constant>.

Cả hai cách tiếp cận được ghi lại (và so sánh) here.

(Hãy nhớ rằng giá trị enum là lĩnh vực chỉ tĩnh trên lớp enum)

+0

Cảm ơn bạn, liên kết này rất hữu ích. – Shamik

2

Bạn chỉ có thể sử dụng tên enum như giá trị, và mùa xuân sẽ tự động phát hiện rằng đó là một lĩnh vực tĩnh của kiểu enum và sử dụng nó . Vì vậy, ví dụ, nếu bạn có một com.mycompany.MyEnum enum với các giá trị SOMEVAL, ANOTHERVAL, bạn có thể sử dụng:

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

này sẽ cho phép bạn để tránh FieldRetrievingFactoryBean và <util:constant> hoàn toàn.

Các vấn đề liên quan