将bean的引用传递给另一个bean

时间:2013-09-12 06:03:38

标签: spring

我有一个A类,其中包含以下

class A
{

private HashSet<Long> at = new HashSet<Long>();

and it has a constructor like this

A()
{
//set is being initialsised here 

                this.at.add(new Long(44));
        this.at.add(new Long(34));
        this.at.add(new Long(54));
        this.at.add(new Long(55));


}

现在,下面是为它定义的spring xml bean ...

<bean id="aa" class="com.abc.A">
        <property name="readPermissionGroup">
      <set>
         <value>03</value>
         <value>13</value>
         <value>54</value>
         <value>55</value>
      </set>
   </property>
    </bean>

现在请告知我如何将上面的bean aa添加到bb中,因为bean bb包含A类的完全定义

2 个答案:

答案 0 :(得分:1)

将B类定义为Spring上下文

<bean id="bb" class="com.abc.B"></bean>

将A类依据添加到B类,如

class B
{
    private A beanA;

    //setters getters
}

并在xml配置中将bean A注入bean B.修改bean B defination

<bean id="bb" class="com.abc.B">
<property name="beanA" ref="aa" />
</bean>

我的建议是不要使用xml来定义和注入bean。它真的很旧,改为使用注释。

答案 1 :(得分:0)

您可以使用@Anotation注入bean A.在类A中使用@Bean注释。@Bean注释将创建bean A.

class B {
    @Autowired
    private A beanA;
    // setter and getter
}

这是你的A级

@Bean
 class A
  {
  private HashSet<Long> at = new HashSet<Long>();
  A()
   {
   //set is being initialsised here 

    this.at.add(new Long(44));
    this.at.add(new Long(34));
    this.at.add(new Long(54));
    this.at.add(new Long(55));
}