spring中bean之间的引用以及内部bean
转载自:https://www.cnblogs.com/sxdcgaq8080/p/5680612.html
在spring中会有如下的几种情况:
1.在当前容器中,(即在spring.xml这一个配置文件中),一个bean引用了另一个bean。
使用
1》 <ref bean=”另一个bean的id” />
1.1 构造器
1.2 setter
2》ref作属性
—–2.1 -构造器注入:<constructor-arg index=”0″ ref=”另一个bean的id” />
—–2.2-setter注入:<property name=” ” ref=”另一个bean的id” />
2.<ref local=” “>
引用当前容器中的另一个<bean>,只能通过引用这样定义的<bean>即:<bean id=”bean1″ class=””/> 定义id的可以被识别.
其余的<bean name=”bean2″ class=””> 或者<bean alias=”bean3″ class=””>都识别不到。
3.<ref parent=”” />
引用父容器中的bean,若父容器中定义的<bean id=”bean1″ class=”” />,当前容器中也有一个<bean id=”bean1″ class=””/> 则<ref parent =””>会直接去父容器中去找,如果没有那就是没有,不会在当前容器中寻找。
4.内部bean
即
1.在<property>或<constructor-arg>内部通过<bean>定义的,
2.该bean不管是否指定id或者name,该bean都有一个唯一的匿名标识符,且不能被指定别名
3.该bean队其他外部的bean不可见。