java – 带有动态键和值的Spring bean映射
作者:互联网
现在我在spring bean map中有应用程序相关数据,并将此映射作为ref传递给其他类.
地图定义如下
<bean id="sampleMap" class="java.util.HashMap">
<constructor-arg index="0" type="java.util.Map">
<map key-type="java.lang.Integer" value-type="java.lang.Float">
<entry key="1" value="5"/>
<entry key="2" value="10"/>
<entry key="3" value="15"/>
</map>
</constructor-arg>
</bean>
此映射在其他bean中称为
<bean id="config" class="com.example.Config" abstract="false">
<property name="sampleMap" ref="sampleMap"/>
.
.
</bean>
我只想从数据库表中检索映射值,并希望将其注入其他类.我怎么能在春天这样做.基本上该表包含与应用程序相关的数据.映射的键和值将是int,Configuration.
加载配置数据的最佳位置是什么?我们可以使用spring beans map,还是有任何其他好方法从数据库加载配置,并在其他应用程序中引用,如service,delegate和DAO?
帮助将不胜感激
谢谢
解决方法:
你应该使用spring的FactoryBean.
public class MyHashMapFactoryBean implements FactoryBean<Map<Integer, Float>>{
@Autowired
private Datasource datasource;
public Map<Integer, Float> getObject(){
return <load from database>;
}
public Class<Map> getObjectType() { return Map.class ; }
public boolean isSingleton() { return true; }
}
<bean id="sampleMap" class="my.package.MyHashMapFactoryBean">
<here you could pass some properties e.g. jdbc datasource>
</bean>
标签:java,hashmap,spring,spring-ioc 来源: https://codeday.me/bug/20190625/1286103.html