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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Java Spring ClassPathXmlApplicationContext是如何判断容器内包含某个Bean的

ClassPathXmlApplicationContext的获得方式:ClassPathXmlApplicationContext context =

new ClassPathXmlApplicationContext(“Beans.xml”);


重要的成员变量:


beanFactory: DefaultListableBeanFactory

beanFactoryPostProcessors: ArrayList

classLoader: sun.misc.Launcher$AppClassLoader@14dad5dc

configLocations: Beans.xml


image.png

  • Logger: Jdk14Loggerimage.png

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

使用方法containsBean:

image.pngdelegate给getBeanFactory().containsBean方法:image.png这个containsBean方法定义在AbstractApplicationContext里:image.pngimage.png而getBeanFactory的实现,位于AbstractRefreshableApplicationContext里:image.pngDefaultListableBeanFactory里有个成员变量beanDefinitionMap, 是一个ConcurrentHashMap:image.png我在Beans.xml里定义的bean就存储在这个hashmap里,因此最后context.containsBean返回true:image.png

相关文章
|
2月前
|
Java 开发者 容器
【Java】深入了解Spring容器的两个关键组件
【Java】深入了解Spring容器的两个关键组件
15 0
|
2月前
|
Java 数据库 Spring
Spring Bean、Java Bean和对象的区别与联系
Spring Bean、Java Bean和对象的区别与联系
96 0
|
7月前
|
XML Java 数据格式
Spring IOC容器注解大全—基于Java的容器配置(@Bean 、 @Configuration、@PropertySource)
Spring IOC容器注解大全—基于Java的容器配置(@Bean 、 @Configuration、@PropertySource)
101 0
|
7月前
|
Java Spring 容器
java spring demo 容器
java spring demo 容器
37 0
|
12月前
|
Java
java SpringBoot 静态方法中获取@Value注入的值
java SpringBoot 静态方法中获取@Value注入的值
|
Java 关系型数据库 MySQL
java new创建的对象不会被Spring容器进行管理
java new创建的对象不会被Spring容器进行管理
172 0
|
Java 数据库连接 API
|
Java 网络架构
Java-SpringBoot-05-使用@Value注解注入单个应用程序参数
SpringBoot中可以使用使用@Value注解注入单个应用程序参数,很方便的在业务类中使用。
182 0
Java-SpringBoot-05-使用@Value注解注入单个应用程序参数
|
XML Java 数据格式
java面试题:如何给Spring容器提供配置元数据?
java面试题:如何给Spring容器提供配置元数据?
java面试题:如何给Spring容器提供配置元数据?
|
Java Spring
请举例说明如何在Spring中注入一个Java Collection?
请举例说明如何在Spring中注入一个Java Collection?
请举例说明如何在Spring中注入一个Java Collection?