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

JAVA 一零 1年前 (2017-12-07) 301次浏览 0个评论

在 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,请进入一零的代码仓库


爱码星 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:从 0 到 1 学 JAVA 第十三天——Spring 多 xml 文件中 bean 的引用
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到