转自: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的定义。

最新文章

  1. LCS(Longest Common Subsequence 最长公共子序列)
  2. csc.rsp Invent by Microshaoft
  3. Java 中的System.exit
  4. POJ 1422 二分图(最小路径覆盖)
  5. CentOS 6.2 OpenVPN 搭建
  6. Silverlight动画的基本知识、关键帧动画
  7. linux 查看信息命令
  8. Java中System.getProperty()的参数
  9. Oracle多表连接查询
  10. Nginx+Tomcat高性能负载均衡集群搭建
  11. Azure系列2.1.12 —— CloudBlobDirectory
  12. 菜单联动,select联动菜单(搜索之后默认选中)
  13. Linux内核分析-两种方式使用同一个系统调用
  14. 5 -- Hibernate的基本用法 --4 2 hibernate.properties文件与hibernate.cfg.xml文件
  15. 知道椭圆长轴,短轴长度,ab直线的长度知道且垂直于长轴。求ab的弧长。
  16. Orcal数据库,使用EF的自增处理
  17. swift 第一个IOS应用程序
  18. python web框架 django wsgi 理论
  19. 说说JDK中的String.valueOf()传null的诡异处理
  20. 利用ntp自动同步时间

热门文章

  1. HTTP协议学习,post于get;用Fiddler测试请求
  2. c# 读取 excel文件内容,写入txt文档
  3. POJ 1610 Count the Colors
  4. Flex之文件目录浏览器实例
  5. 【Henu ACM Round#14 D】Kefa and Dishes
  6. CF 439C(251C题)Devu and Partitioning of the Array
  7. js函数的属性和方法
  8. 类数组对象arguments 和 数组对象
  9. JavaScript--数据结构与算法之图
  10. 「HAOI2016」字符合并