在Spring中,bean可以存在于同一个xml文件,也可以存在不同的xml,现在准备两个xml文件Songouhe.xml和twoFileBean.xml两个文件,其中Songouhe.xml是主配置文件,twoFileBean.xml是外部bean配置文件。
1.同一xml文件中bean的引用
Songouhe.xml ,文件中配置了id为BananaOutput的bean,直接引用即可。两种方法如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
<bean id="OutputHelper" class="pers.onezero.output.OutputHelper">
<property name="outputGenerator">
<ref bean="BananaOutput"/>
</property>
#或者<property name="outputGenerator" ref="BananaOutput"/>
</bean>
<bean id="BananaOutput" class="pers.onezero.output.impl.BananaOutputGenerate"/>
</beans>
2.不同xml文件中的bean的引用。
Songouhe.xml 注意引入其他bean所在的xml文件,利用下述语句:
<import resource="twoFileBean.xml"/>
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
<import resource="twoFileBean.xml"/>
<bean id="OutputHelper" class="pers.onezero.output.OutputHelper">
<property name="outputGenerator">
<ref bean="AppleOutput"/>
</property>
</bean>
<bean id="BananaOutput" class="pers.onezero.output.impl.BananaOutputGenerate"/>
</beans>
twoFileBean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
<bean id="AppleOutput" class="pers.onezero.output.impl.AppleOutputGenerate"/>
</beans>
配置成功后则会采用id为AppleOutput的bean,控制台输出结果:
附录:
1.本文文件目录结构:
2.如果Spring松耦合不了解,请参看上一篇,从0到1学JAVA第十二天——Spring实现松耦合实例。
3.本文相关代码已上传github,请进入一零的代码仓库