美文网首页
Spring学习笔记:SpringFramework之BeanF

Spring学习笔记:SpringFramework之BeanF

作者: 大力papa | 来源:发表于2021-01-05 16:30 被阅读0次

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

BeanFactory

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


BeanFactroy

ApplicationContext

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

  • 更容易聚合AOP特性
  • 消息资源管理(用于国际化)
  • 事件发布
  • 应用层特定的上下文,例如Web应用程序中使用的WebApplicationContext

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官方文档

相关文章

网友评论

      本文标题:Spring学习笔记:SpringFramework之BeanF

      本文链接:https://www.haomeiwen.com/subject/rntwoktx.html