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

Esta es la forma en que solía establecer el nombre de la clase com.abc. Ahora, los nombres deberían venir de otra enumeración. ¿Cómo accedo al valor enum para establecer la propiedad del nombre de mi clase com.abc?Cómo utilizar Spring para obtener el valor de un Enum

Respuesta

7

No veo por qué no puedes seguir usando FieldRetrievingFactoryBean, para eso sirve.

Sin embargo, es un poco más fácil de usar de lo que sugiere su ejemplo. Además, existe la sintaxis basada en esquema más sencilla que hace lo mismo, <util:constant>.

Ambos enfoques están documentados (y comparados) here.

(Recuerde que los valores de enumeración son campos simplemente estáticos en la clase de enumeración)

+0

Gracias, el enlace fue muy útil. – Shamik

2

sólo puede utilizar el nombre de enumeración como el valor, y la primavera detectará automáticamente que se trata de un campo estático del tipo de enumeración y utilizarlo . Así, por ejemplo, si tiene una com.mycompany.MyEnum enumeración con valores SOMEVAL, ANOTHERVAL, puede utilizar:

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

Esto le permitirá evitar FieldRetrievingFactoryBean y <util:constant> por completo.

Cuestiones relacionadas