Java Spring ClassPathXmlApplicationContext是如何判断容器内包含某个Bean的

Java 同时被 2 个专栏收录
721 篇文章 4 订阅
20 篇文章 0 订阅

ClassPathXmlApplicationContext的获得方式:ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext(“Beans.xml”);

重要的成员变量:

  • beanFactory: DefaultListableBeanFactory
  • beanFactoryPostProcessors: ArrayList
  • classLoader: sun.misc.Launcher$AppClassLoader@14dad5dc
  • configLocations: Beans.xml

  • Logger: Jdk14Logger

如何判断ClassPathXmlApplicationContext容器里是否包含某bean?

使用方法containsBean:

delegate给getBeanFactory().containsBean方法:

这个containsBean方法定义在AbstractApplicationContext里:



而getBeanFactory的实现,位于AbstractRefreshableApplicationContext里:

DefaultListableBeanFactory里有个成员变量beanDefinitionMap, 是一个ConcurrentHashMap:

我在Beans.xml里定义的bean就存储在这个hashmap里,因此最后context.containsBean返回true:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值