Spring RootBeanDefinition,ChildBeanDefinition,GenericBeanDefinition
转自:https://blog.csdn.net/joenqc/article/details/68942972
RootBeanDefinition,ChildBeanDefinition,GenericBeanDefinition均继承了AbstractBeanDefiniton,其中BeanDefinition是配置文件<bean>元素标签在容器中内部表示形式。<bean>元素标签拥有class、scope、lazy-init等配置属性,BeanDefinition则提供了相应的beanClass、scope、lazyInit属性,BeanDefinition和<bean>中的属性是一一对应的。其中RootBeanDefinition是最常用的实现类,它对应一般性的<bean>元素标签,GenericBeanDefinition是自2.5以后新加入的bean文件配置属性定义类,是一站式服务类。在配置文件中可以定义父<bean>和子<bean>,父<bean>用RootBeanDefinition表示,而子<bean>用ChildBeanDefiniton表示,而没有父<bean>的<bean>就使用RootBeanDefinition表示。AbstractBeanDefinition对两者共同的类信息进行抽象。
Spring通过BeanDefinition将配置文件中的<bean>配置信息转换为容器的内部表示,并将这些BeanDefiniton注册到BeanDefinitonRegistry中。Spring容器的BeanDefinitionRegistry就像是Spring配置信息的内存数据库,主要是以map的形式保存,后续操作直接从BeanDefinitionRegistry中读取配置信息。一般情况下,BeanDefinition只在容器启动时加载并解析,除非容器刷新或重启,这些信息不会发生变化,当然如果用户有特殊的需求,也可以通过编程的方式在运行期调整BeanDefinition的定义。
最新文章
- LCS(Longest Common Subsequence 最长公共子序列)
- csc.rsp Invent by Microshaoft
- Java 中的System.exit
- POJ 1422 二分图(最小路径覆盖)
- CentOS 6.2 OpenVPN 搭建
- Silverlight动画的基本知识、关键帧动画
- linux 查看信息命令
- Java中System.getProperty()的参数
- Oracle多表连接查询
- Nginx+Tomcat高性能负载均衡集群搭建
- Azure系列2.1.12 —— CloudBlobDirectory
- 菜单联动,select联动菜单(搜索之后默认选中)
- Linux内核分析-两种方式使用同一个系统调用
- 5 -- Hibernate的基本用法 --4 2 hibernate.properties文件与hibernate.cfg.xml文件
- 知道椭圆长轴,短轴长度,ab直线的长度知道且垂直于长轴。求ab的弧长。
- Orcal数据库,使用EF的自增处理
- swift 第一个IOS应用程序
- python web框架 django wsgi 理论
- 说说JDK中的String.valueOf()传null的诡异处理
- 利用ntp自动同步时间