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语言的支持、属性注册编辑器等。
附上一张类图结构