在spring中,用ref的属性指定 依赖,有3中模式 local,bean,parent.
1.用local属性指定
如果一个bean与被参考引用的bean在同一个xml文件中而且被参考引用的bean是用id来命名的,那么就可以用用local模式。这样会让xml解析器
更早地在xml文档解析时,验证bean的id。
local属性值必须和bean的id一致,如在xml文件中不存在该id的bean,xml解析器将会产生一个错误。
xml配置示例代码
<bean id="helloWorld" class="jp.co.xiehl.learn.ch2.action.HelloWorld" depends-on="date">
<property name="msg">
<value>HelloWorld</value>
</property>
<property name="date">
<ref local="date"/>
</property>
</bean>
<bean id="date" class="java.util.Date"></bean>
2.用bean属性指定
它允许指向的bean可以在同一个xml中也可在不同的xml中。bean的属性值可与被参考的bean的id或者name相同。
示例如下
<bean id="helloWorld" class="jp.co.xiehl.learn.ch2.action.HelloWorld" depends-on="date">
<property name="msg">
<value>HelloWorld</value>
</property>
<property name="date">
<ref bean="date"/>
</property>
</bean>
<bean id="date" class="java.util.Date"></bean>
3.用parent属性指定
它允许引用当前BeanFactory或ApplicationContext的父BeanFactory或ApplicationContext中的bean。parent的属性值可与被参考的bean
示例如下
<bean id="helloWorld" class="jp.co.xiehl.learn.ch2.action.HelloWorld" depends-on="date">
<property name="msg">
<value>HelloWorld</value>
</property>
<property name="date">
<ref parent="date"/>
</property>
</bean>
local模式和bean模式比较
相同:两种模式都可以用bean的id来进行参考引用,都可以对同一xml中的bean进行引用。
不同点:bean模式可以引用bean的name,并且可针对不同xml中定义的bean进行引用。