转载自:https://www.cnblogs.com/sxdcgaq8080/p/5680612.html

在spring中会有如下的几种情况:

1.在当前容器中,(即在spring.xml这一个配置文件中),一个bean引用了另一个bean。

使用

1》  <ref  bean=”另一个bean的id” />

1.1 构造器

%title插图%num

1.2 setter

%title插图%num

 

  2》ref作属性

—–2.1  -构造器注入:<constructor-arg   index=”0″  ref=”另一个bean的id”  />

%title插图%num

 

—–2.2-setter注入:<property   name=” ”  ref=”另一个bean的id”  />

 

%title插图%num

 

2.<ref  local=” “>

引用当前容器中的另一个<bean>,只能通过引用这样定义的<bean>即:<bean  id=”bean1″  class=””/> 定义id的可以被识别.

其余的<bean  name=”bean2″  class=””> 或者<bean alias=”bean3″  class=””>都识别不到。

%title插图%num

 

3.<ref parent=””  />

引用父容器中的bean,若父容器中定义的<bean  id=”bean1″ class=”” />,当前容器中也有一个<bean  id=”bean1″ class=””/> 则<ref parent =””>会直接去父容器中去找,如果没有那就是没有,不会在当前容器中寻找。

%title插图%num

 

4.内部bean

1.在<property>或<constructor-arg>内部通过<bean>定义的,

2.该bean不管是否指定id或者name,该bean都有一个唯一的匿名标识符,且不能被指定别名

3.该bean队其他外部的bean不可见。

%title插图%num