在Spring,bean可以“访问”对方通过bean配置文件指定相同或不同的引用。

1. Bean在不同的XML文件

如果是在不同XML文件中的bean,可以用一个“ref”标签,“bean”属性引用它。
<ref bean="someBean"/>
“CsvOutputGenerator”或“JsonOutputGenerator”通过属性标签使用'ref'属性, - 在这个例子中,Bean “OutputHelper” 在 'Spring-Common.xml' 声明可以访问其他 Bean在'Spring-Output.xml'。

File : Spring-Common.xml

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="OutputHelper" class="com.yiibai.output.OutputHelper"><property name="outputGenerator" ><ref bean="CsvOutputGenerator"/></property></bean></beans>

File : Spring-Output.xml

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="CsvOutputGenerator" class="com.yiibai.output.impl.CsvOutputGenerator" /><bean id="JsonOutputGenerator" class="com.yiibai.output.impl.JsonOutputGenerator" /></beans>

2. 在同一个XML文件中的Bean

如果引用在同一个XML文件中的bean,你可以用 'ref' 标签,“local”属性引用它。
<ref local="someBean"/>
在这个例子中,Bean “OutputHelper” 在 'Spring-Common.xml' 声明可以相互访问“CsvOutputGenerator”或“JsonOutputGenerator”。

File : Spring-Common.xml

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="OutputHelper" class="com.yiibai.output.OutputHelper"><property name="outputGenerator" ><ref local="CsvOutputGenerator"/></property></bean><bean id="CsvOutputGenerator" class="com.yiibai.output.impl.CsvOutputGenerator" /><bean id="JsonOutputGenerator" class="com.yiibai.output.impl.JsonOutputGenerator" /></beans>
总结
其实,无论是在相同或不同的XML文件,“ref” 标签可以访问一个bean,但是,对于该项目的可读性,如果引用了相同的 XML文件中声明 bean,您应该使用“local”属性。

http://www.yiibai.com/spring/spring-bean-reference-example.html

Spring Bean引用例子相关推荐

  1. CXF之jaxws:endpoint对spring bean的引用

    由于CXF对spring的无缝支持,CXF的使用,经常与spring捆绑在一起.随之而起的,自然是想在jaxws:endpoint中引用spring bean.在CXF提供的HelloWorld例子中 ...

  2. 《Spring攻略(第2版)》——1.5 指定Bean引用

    本节书摘来自异步社区<Spring攻略(第2版)>一书中的第1章,第1.5节,作者: [美]Gary Mak , Josh Long , Daniel Rubio著,更多章节内容可以访问云 ...

  3. spring 源码_spring源码系列(一)——spring循环引用

    众所周知spring在默认单例的情况下是支持循环引用的 为了节省图片大小我把那些可以动得gif图片做成了只循环一次,如果看到图片不动了请右键选择在新标签打开,那么图片就会动,手机用户则更简单,直接手指 ...

  4. Spring(3)——装配 Spring Bean 详解

    装配 Bean 的概述 前面已经介绍了 Spring IoC 的理念和设计,这一篇文章将介绍的是如何将自己开发的 Bean 装配到 Spring IoC 容器中. 大部分场景下,我们都会使用 Appl ...

  5. 字节跳动面试题:“请你描述下 Spring Bean 的生命周期?”

    1. 引言 "请你描述下 Spring Bean 的生命周期?",这是面试官考察 Spring 的常用问题,可见是 Spring 中很重要的知识点. 我之前在准备面试时,去网上搜过 ...

  6. spring生命周期七个过程_Spring杂文(三)Spring循环引用

    众所周知spring在默认单例的情况下是支持循环引用的 Appconfig.java类的代码 @Configurable @ComponentScan("com.sadow") p ...

  7. 原创 | 一文了解那些和Spring Bean有关的那些注解!

    △Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 220 篇原创分享 作者 l cxuan 来源 l Hollis(ID:hollischuang) 随着Spring的流行 ...

  8. Spring Bean的一生

    本文来详细说下Spring Bean相关的知识与内容 文章目录 基本概念 Spring容器启动流程 容器初始化过程 容器刷新过程 Spring应用上下文启动准备阶段 BeanFactory创建阶段 B ...

  9. Javaspring 7-13课 Spring Bean

    Javaspring的灵魂,就在于bean的灵活运用.作为Spring核心机制的依赖注入,改变了传统的编程习惯,对组件的实例化不再由应用程序完成,转而交由Spring容器完成,在需要时注入应用程序中, ...

最新文章

  1. 教你理解复杂的C/C++声明
  2. 为什么微信推荐这么快?
  3. Oracle数据隐式乱码,正则匹配中文数据失败
  4. MySQL 高可用架构在业务层面的应用分析
  5. C#实现两个时间相减的方法
  6. 国士工作室 企业级Android软件开发和实战培训专家
  7. WEB项目优化:雅虎优化网站的34条法则(转)
  8. 企业为什么需要一套固定资产管理系统
  9. iOS Xcode如何打包ipa安装包
  10. [开源] PLC梯形图转指令表的算法源代码
  11. 使用Python来计算均值、中位数、标准差
  12. 蓝桥杯 历年试题 矩阵翻硬币
  13. 自动驾驶 Automotive SPICE(ISO/IEC 15504) 和CMMI有什么不同?
  14. ITIL入门 ITSM入门 事件入门 事件管理入门
  15. 茶道形式、用具及要素
  16. mac 安装mysql 后设置开机自启
  17. iOS11缩小界面导航栏与标签栏异常的问题
  18. python-docx 合并单元格
  19. Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现)
  20. 月薪3000+与月薪30000+的3D游戏建模师的区别是什么?

热门文章

  1. C++以字符串形式返回第N个斐波那契的算法(附完整源码)
  2. c++获得总和S所需的最小硬币数量的函数(附完整源码)
  3. C语言字符串转换为整数(附完整源码)
  4. QT的QFileInfo类的使用
  5. 经典C语言程序100例之七三
  6. C++拷贝构造函数的陷阱
  7. 南邮微型计算机实验,南邮 微机原理 微型计算机与接口技术 微机原理实验.doc...
  8. Spark rdd 介绍,和案例介绍
  9. 第30天:项目时间管理相关错题整理
  10. 1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览