美文网首页
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