Spring学习笔记:SpringFramework之BeanF

2021-01-05  本文已影响0人  大力papa

本文仅供学习交流使用,侵权必删。
不作商业用途,转载请注明出处

BeanFactory

BeanFactory是Spring Bean容器的根接口,包含了基本对于Spring Bean操作的接口定义,如下图


BeanFactroy

ApplicationContext

ApplicationContext是BeanFactory的子类,从Spring官网解释,ApplicationContext是在BeanFactory的基础上做一个补充:

BeanFactory与ApplicationContext的关系

从代码来看,以AnnotationConfigApplicationContext为例。AnnotationConfigApplicationContext的getBean方法是父类AbstractApplicationContext实现的


image.png

getBean()的这个方法是从getBeanFactory()返回的beanFactory中获取bean,在AbstractApplicationContext只是一个抽象方法


image.png

具体的实现在GenericApplicationContext中,返回的是DefaultListableBeanFactory,这个也是BeanFactory的一个实现类


image.png

看了源码后可以看出ApplicationContext使用了代理模式,在Spring Bean容器外充当了一层代理,真正在管理Spring Bean对象的是DefaultListableBeanFactory

总结

总的来说,BeanFactory提供了Spring容器最基本的功能,而ApplicationContext是在BeanFactory的基础上添加了更多特定于企业的一些功能。ApplicationContext是BeanFactory一个完整的超集

参考文献

Spring官方文档

上一篇 下一篇

猜你喜欢

热点阅读