查询应用程序上下文的所有Bean

时间:2015-05-22 17:15:55

标签: java spring

我有一个Spring application.xml(我在Blueprint Context中有很多XML)

<bean name="bean1">
  <property name="list">
     <list>
       <bean class="com.jrey.xx.A"></bean>
       <bean class="com.jrey.xx.C"></bean>
     </list>
  </property>
<bean name="bean2">
  <property name="list">
    <list>
      <bean class="com.jrey.xx.A"></bean>
      <bean class="com.jrey.xx.B"></bean>
   </list>
 </property>

使用getBeanDefinitionNames方法我可以获取bean bean1,bean2但是我无法获取列表项,我也想扫描这个bean。

for (String beanName : applicationContext.getBeanDefinitionNames()) {
  //I have a control
}

检索应用程序上下文的所有bean的方法是什么,包括没有列表名称和bean项目的bean。

1 个答案:

答案 0 :(得分:2)

你做不到。如果您希望能够引用这些bean,请在XML配置的顶层使用名称声明它们,并在<list>中引用它们。

<bean name="A1" class="com.jrey.xx.A" />
<bean name="bean2">
  <property name="list">
    <list>
      <ref bean="A1" />
   </list>
  </property>
</bean>