从0到1学JAVA第十三天——Spring多xml文件中bean的引用

By | 12月 7, 2017

在Spring中,bean可以存在于同一个xml文件,也可以存在不同的xml,现在准备两个xml文件Songouhe.xmltwoFileBean.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,请进入一零的代码仓库

发表评论

您的电子邮箱地址不会被公开。