Spring getBeansofType

//
如何载入所有同类型的bean
//

使用BeanFatory的[color=red][b]getBeansOfType()[/b][/color]方法,该方法返回一个Map类型的实例,Map中的key为Bean的名,key对应的内容为Bean的实例。

该方法有两种类型的重载

[color=blue][b]getBeansOfType(Class)[/b][/color],获取某一类的所有的bean。

[color=blue][b]getBeansOfType(Class,boolean,boolean)[/b][/color],后面两个布尔值,第一代表是否也包含原型(Class祖先)bean或者或者只是singletons(包含FactoryBean生成的),第二个表示是否立即实例化懒加载或者由FactoryBean生成的Bean以保证依赖关系。

例程代码:

配置如下


Hello!Justin!




Hello!caterpillar!


程序如下
[color=blue][b]Map helloBeans = factory.getBeansOfType(HelloBean.class, false, false);[/b][/color]


在applicationContext.xml配置文件中,有如下的bean配置
 <!-- 使用托管方式的disconf配置(无代码侵入, 配置更改会自动reload)-->
<bean id="configproperties_disconf"
class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:/autoconfig.properties</value>
<value>classpath:/autoconfig2.properties</value>
<value>classpath:/myserver_slave.properties</value>
<value>classpath:/testJson.json</value>
<value>testXml2.xml</value>
</list>
</property>
</bean>
<bean id="configproperties_no_reloadable_disconf"
class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
<property name="locations">
<list>
<value>myserver.properties</value>
</list>
</property>
</bean>


使用applicationContext方法getBeansOfType()得当的map如下所示

Class<ReloadablePropertiesFactoryBean> type = ReloadablePropertiesFactoryBean.class;

Map<String, ReloadablePropertiesFactoryBean> map = applicationContext.getBeansOfType(type);

System.out.println("map="+map.toString());


[color=blue][b]map={&configproperties_disconf=ReloadablePropertiesFactoryBean, &configproperties_no_reloadable_disconf=ReloadablePropertiesFactoryBean}[/b][/color]

参考:http://blog.sina.com.cn/s/blog_5d03c2970102wa87.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值