Spring:如果一个构造函数arg是一个ref bean而另一个不是,那么如何使类成为bean?

时间:2012-07-09 21:11:47

标签: java spring

我有一个班级

public class MakeMeBean {
  @Autowired private IAmBean var1;
  private IAmNOTBean var2;

  public MakeMeBean() {}

  public MakeMeBean(IAmNOTBean var) {
    this.var2 = var;
  }
}

我想把这个类作为一个bean,所以我将wireup.xml作为

<bean id="make-me-bean" class="com.blah.blah.MakeMeBean">
  <constructor-arg index="0" ref=<PUT REFERENCE BEAN HERE>
  <constructor-arg index="1" <I don't want to put anything>
</bean>

问题
a。)如何创建一个bean,其中一个实例变量是一个bean而另一个不是?我不想注入var2(wireup.xml中的另一个bean)

b。)<PUT REFERENCE BEAN HERE>是从jar文件导入的bean,如何在wireup.xml

中引用这个bean

1 个答案:

答案 0 :(得分:0)

你不能只在你创建的上下文中创建一些bean,并且创建另一半的bean(至少不是那么简单),如果你想在spring上管理实例,spring应该在它的上下文中有对象。当然,您可以在上下文中实例化对象,并且在实例化之后,您可以调用一些setter来设置一些属性。

为了使用另一个bean来使用另一个bean,我认为它来自另一个Spring上下文,另一个spring上下文需要在第一个中导入。要导入上下文文件,您可以使用:

<import resource="resourcePath" />