编程语言
首页 > 编程语言> > java – 带有动态键和值的Spring bean映射

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