随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
模式有三种:local、bean和parent
1、local
要求被参考引用的Bean是以id命名的,并且Bean与被参考引用的Bean在同一个XML。如果在同一个XML文件没有匹配的元素,XML解析器会产生一个错误,所以在同一个XML最好用local,可以帮助我们检查配置的正确性。示例如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="HelloWorld" class="com.example.demo.test.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>
</beans>
2、用Bean属性
是最常见的形式,允许在同一个XML也可以不在同一个XML,Bean属性的值与被参考引用Bean的可以是id属性相同也可以是name属性相同,示例如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="HelloWorld" class="com.example.demo.test.HelloWorld"
depends-on="date">
<property name="msg">
<value>HelloWorld</value>
</property>
<!-- 允许指向的Bean可以在同一个XML中,也可以不在同一个XML中 -->
<property name="date">
<ref bean="date" />
</property>
</bean>
<bean id="date" class="java.util.Date"></bean>
</beans>
3、用parent属性
允许引用当前BeanFactory或者ApplicationContext的父BeanFactory或ApplicationContext中的Bean,parent属性的值可以与被参考引用的Bean的id属性相同,也可以与name属性相同,示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="HelloWorld" class="com.example.demo.test.HelloWorld"
depends-on="date">
<property name="msg">
<value>HelloWorld</value>
</property>
<property name="date">
<ref parent="date" />
</property>
</bean>
<bean id="date" class="java.util.Date"></bean>
</beans>
他们之前的异同就很明显了。