Spring Framework bean接线:我们可以在Spring配置文件中使用相同的java类创建多个bean吗?

时间:2015-04-08 01:49:19

标签: java spring

我们可以在Spring配置文件中使用相同的java类创建多个bean吗?

<beans ....
    <bean name="customeBeanInstance1" class="model.CustomBean">
        <property name="name" value="customBeanOne"/>
    </bean>  
    <bean name="customeBeanInstance2" class="model.CustomBean">
        <property name="name" value="customBeanTwo"/>
    </bean>  > 
</beans>

如果是,那么接线如何工作?

这种配置的实际用途是什么?

1 个答案:

答案 0 :(得分:1)

当然可以。要记住的事情(我相信会引起你的困惑):

  1. 刻板印象注释(@Component@Service)并不是告诉Spring创建bean的唯一方法。还有其他方法,例如在XML app context config file中。

  2. 按类型自动连接并不是Spring注入bean的唯一方法。您可以通过提供bean名称等明确告诉Spring注入哪个bean。

  3. 所以,你认为可能不可能的事实上很常见,例如,像这样的XML配置:

    <beans>
      <bean id="basicFooService" class="com.foo.FooServiceImpl" />
      <bean id="advancedFooService" class="com.foo.FooServiceImpl" >
          ... different properties
      </bean>
    
      <bean id="barService" class="com.bar.BarServiceImpl">
        <property name="fooService" ref="advancedFooService" />
      </bean>
    </beans>