使用以下xml;在使用Spring框架时,将这些值转换为Map
的简洁方法是什么?
<item key="k1" value="val1" />
<item key="k2" value="val2" />
<item key="k3" value="val3" />
我可以轻松地以编程方式从XML文件中读取这些值并自己添加它们但是我希望Spring框架可以适应这个用例,但似乎无法找到它是什么或者它确实可能吗?
e.g。
@SomeSpringAnnotation("classpath://mykeyvalue.xml")
private Map values; //contains 3 entries
答案 0 :(得分:2)
这里有几种可能的解决方案(当然还有更多)。
SomeEntity.java
public class SomeEntity {
private Map<Object, Object> maps;
//...
}
spring.xml
<bean id="SomeEntityInstance" class="com.example.SomeEntity">
<!-- java.util.Map -->
<property name="maps">
<map>
<entry key="Key 1" value="1" />
</map>
</property>
</bean>
SomeEntity.java
public class SomeEntity {
private Map<Object, Object> maps;
//...
}
可以是其他 .xml 文件,也可以直接在spring.xml
<util:map id="someMap" map-class="java.util.HashMap">
<entry key="entry1" value="v1" />
<entry key="entry2" value="v2" />
...
并执行以下操作:
<bean id="someEntity" class="com.example.SomeEntity">
<property name="mapProperty" ref="someMap">
</property>
</bean>