2012-04-11 11 views
7

Necesito inyectar un mapa a una propiedad de bean y cuando se atraviesan las entradas del mapa, debe devolverlas en orden de inserción. En Java, esto es similar a LinkedHashMap. Pero como no puedo encontrar nada en la documentación de primavera relacionada con el pedido de la etiqueta, no estoy seguro de si puedo usarla en este escenario.Spring: orden de <map> tag

¿Puede alguien decirme si puedo usar para este fin?

Muchas gracias

Respuesta

8

El valor predeterminado esLinkedHashMap - MapFactoryBean se utiliza para crear instancias de Map. Según documentos:

Fábrica simple para instancias de Mapa compartidas. Permite la configuración central de Mapas a través del elemento "mapa" en las definiciones de bean XML.

y su método setTargetMapClass:

Ajuste la clase que se utiliza para el mapa de destino. Puede completarse con un nombre de clase calificado completo cuando se define en un contexto de aplicación Spring.
El valor predeterminado es un HashMap vinculado, manteniendo la orden de registro.

Ver también: LinkedHashMap

así que no hay necesidad de utilizar <util:map> aquí.

+0

Eso es mejor. Supongo que puedo usar ese para esto entonces. ¡Gracias! – rKasun

8

Use esta construcción:

<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> 

... 
<util:map id="mymap" map-class="java.util.LinkedHashMap"> 
    <entry key="a" value="b" /> 
    <entry key="c" value="d" /> 
</util:map> 

... 
</beans> 

para declarar el mapa con las teclas ordenadas. Luego puede usar este mapa usando <ref id="mymap" /> o puede usar esta construcción directamente al declarar el valor de la propiedad Mapa.

+0

¡Genial! Gracias. – rKasun

Cuestiones relacionadas