gpt4 book ai didi

java - 具有动态键和值的 Spring bean 映射

转载 作者:搜寻专家 更新时间:2023-11-01 02:49:16 25 4
gpt4 key购买 nike

现在我在 spring bean 映射中有与应用程序相关的数据,并将此映射作为引用传递给其他类。

map 定义如下

<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>

我只想从数据库表中检索映射值,并将其注入(inject)其他类。我怎么能在 Spring 做到这一点。基本上该表包含与应用程序相关的数据。映射的键和值将是 int,Configuration。

加载配置数据的最佳位置是什么?我们可以使用 spring beans map 还是有其他好的方法从数据库加载配置并在服务、委托(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 - 具有动态键和值的 Spring bean 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14689797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com