Spring源码分析之Spring容器(一)

Spring源码分析之Spring容器(一)

什么是Spring容器?
BeanFactory和ApplicationContext都可以得到一个Bean,他们之间又有什么联系和区别?


Spring容器

从概念上说就像是一个“大水桶”,有着生成、配置Bean并控制其生命周期等行为的功能。
从具体上说一个BeanFactory实现类或者是一个ApplicationContext实现类都可以从当Spring容器的角色。


但实际运用中一般都用ApplicationContext,而且平时所说的Spring容器也是指ApplicationContext。
Why?
这里就得说说BeanFactory和ApplicaiontContext的联系和区别了。


先通俗易懂的说其联系和区别

联系

BeanFactory是ApplicationContext的基础,ApplicationContext是BeanFactory的功能扩展。

区别

既然ApplicationContext是BeanFactory的功能扩展,那区别自然就是ApplicationContext有BeanFactory没有的功能啦。如:SpEL语言的支持、属性注册编辑器等。

附上一张类图结构

Spring源码分析之Spring容器(一)