bean标签的解析及注册(四)对alias,import,beans标签的处理
来源:互联网 发布:伪原创软件 编辑:程序博客网 时间:2024/05/20 19:47
之前说过,对配置文件的解析包括对import,alias,bean,beans标签的处理现在已经完成了最核心的功能,其它三个的解析也是围绕着bean的解析来处理的。
对alias标签的解析
对bean进行定义时,除了用id来 指定名称外,为了提供多个名称,可以使用alias标签来指定。而所有这些名称都指向同一个bean。
在XML配置文件中,可用单独的<alias/>元素来完成bean别名的定义。如配置文件中定义了一个javaBean:
<bean id="testBean" class="com.test"/>
要给这个javaBean增加别名,以方便不同的对象来调用。我们可以直接使用bean标签中的那么属性:
<bean id="testBean" name="testBean,testBean2" class="com.test"/>
Spring还有另外一种声明别名的方式:
<bean id="testBean" class="com.test"/>
<alias name="testBean" alias="testBean,testBean2"/>
举个例子,组件A在XML配置文件中定义了一个名为componetA的DataSource类型的bean,但组件B却想在其XML文件中以componetB来命名引用此bean.而且主程序MyApp的xml配置中,希望以myApp的名字来引用此bean。最终容器加载3个XML生成最终的ApplicationContext.在此情形下,可通过配置文件中添加下列alias元素来实现:
<alias name="componentA" alias="componentB"/>
<alias name="componentB" alias="myApp"/>
这样一来,每个组件及主程序就可以通过唯一名字来引用同一个数据源而不互相干扰。
我们看下alias标签的解析过程:
对import标签的解析
对于Spring配置文件的编写,经历过大型项目的人都知道,里面有太多的配置文件了。基本采用的方式都是分模块,分模块的方式很多,使用import就是其中一种,例如我们可以构造这样的Spring配置文件:
applicationContext.xml文件中使用import方式导入有模块配置文件,以后若有新模块的加入,那就可以简单修改这个文件了。这样大大简化了配置后期维护的复杂度,并使配置模块化,易于管理。我们来看看Spring是如何解析import配置文件的呢。
对beans标签的解析
对于嵌入式的beans,解析与单独配置文件的解析没有太大却别,无非是调用beans的解析过程,不做多讲
下面会介绍一个非常复杂的过程,bean的加载,bean的加载要比bean的解析复杂的多。
- bean标签的解析及注册(四)对alias,import,beans标签的处理
- bean标签的解析及注册(四)注册解析的beanDefinition
- spring 之 import标签、alias标签、beans标签 解析
- bean标签的解析及注册。
- bean标签的解析及注册(二)解析BeanDefinition
- bean标签的解析及注册(一)
- bean标签的解析及注册(三)AbstractBeanDefinition属性
- spring源码附录(8)import、beans标签的解析
- spring bean 标签的解析和注册
- 《Spring源码深度解析》阅读笔记5-默认标签的解析之bean标签的解析及注册
- spring 3源码解析之如何解析"import", "alias", "bean"标签
- spring源码(7)alias标签的解析
- 在自定义标签子类获取Spring中注册的bean
- spring源码(6)bean标签其他子标签的解析
- struts的bean标签
- bean标签的使用方法
- Struts的bean标签
- <c:import> 标签的使用
- Fragment的生命周期
- linux的awk命令如何用?
- java有关数组排序算法
- 函数指针作为某个函数的参数
- cocos2dx 游戏模块
- bean标签的解析及注册(四)对alias,import,beans标签的处理
- Problem-J
- 模板类和模板函数在dll导出
- 14.6.7?Limits on InnoDB Tables InnoDB 表的限制
- XZ_iOS之使用KVO实现textField在填写完数据时,button可点击且变颜色
- html 头文件 meta的使用
- 获取状态栏 标题栏 高度
- 如何在Mac中使用Android SDK,使用adb工具避免出现-bash: adb: command not found
- 类加载机制