在spring中,用ref的属性指定依赖,有3种模式: local,bean 和 parent.
1. 用local属性指定
如果一个Bean与被参考引用的Bean在同一个XML文件中而被参考引用的Bean是用id来命名的,那么就可以使用ref的local属性.这样会让XML解析器更早地在XML文档解析时,验证Bean的id. local属性的值必须与被参考引用的Bean的id属性一致. 如果在同一个XML文件中没有匹配的元素,XML解析器将会产生一个错误.
示例代码如下:
<?xml version="1.0" encoding="UTF-8"?>@H_404_9@<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"@H_404_9@"http://www.springframework.org/dtd/spring-beans.dtd">@H_404_9@<beans>@H_404_9@ <!-- 定义一个Bean -->@H_404_9@ <bean id="HelloWorld" class="com.gc.action.HelloWorld">@H_404_9@ <property name="msg">@H_404_9@ <value>bbwl</value>@H_404_9@ </property>@H_404_9@ <!-- local属性的值必须与被参考引用的Bean的id属性一致 -->@H_404_9@ <property name="date">@H_404_9@ <ref local="date"/>@H_404_9@ </property>@H_404_9@ </bean>@H_404_9@ <bean id="date" class="java.util.Date" />@H_404_9@</beans>
2. 用bean属性指定
最常见的形式,它允许指向的Bean在同一个XML文件中,也允许在不同的XML文件中.
示例代码如下:
<?xml version="1.0" encoding="UTF-8"?>@H_404_9@<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"@H_404_9@"http://www.springframework.org/dtd/spring-beans.dtd">@H_404_9@<beans>@H_404_9@ <!-- 定义一个Bean -->@H_404_9@ <bean id="HelloWorld" class="com.gc.action.HelloWorld">@H_404_9@ <property name="msg">@H_404_9@ <value>bbwl</value>@H_404_9@ </property>@H_404_9@ <!-- bean属性允许指向的Bean在同一个XML文件中或在不同的XML文件中 -->@H_404_9@ <property name="date">@H_404_9@ <ref bean="date"/>@H_404_9@ </property>@H_404_9@ </bean>@H_404_9@ <bean id="date" class="java.util.Date" />@H_404_9@</beans>
3. 用parent属性指定
用parent属性指定被参考引用的Bean时,允许引用当前beanfactory或ApplicationContext的父beanfactory或ApplicationContext中的Bean. parent属性的值可以与被参考引用的Bean的id属性相同,也可以与被参考引用的Bean的name属性相同.
示例代码如下:
<?xml version="1.0" encoding="UTF-8"?>@H_404_9@<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"@H_404_9@"http://www.springframework.org/dtd/spring-beans.dtd">@H_404_9@<beans>@H_404_9@ <!-- 定义一个Bean -->@H_404_9@ <bean id="HelloWorld" class="com.gc.action.HelloWorld">@H_404_9@ <property name="msg">@H_404_9@ <value>bbwl</value>@H_404_9@ </property>@H_404_9@ <!-- parent属性允许引用当前beanfactory或ApplicationContext的 -->@H_404_9@ <!-- 父beanfactory或ApplicationContext -->@H_404_9@ <property name="date">@H_404_9@ <ref parent="date"/>@H_404_9@ </property>@H_404_9@ </bean>@H_404_9@ <bean id="date" class="java.util.Date" />@H_404_9@</beans>
该配置文件暂时还不知怎么用,测试时报错了,存疑......