您现在的位置是:首页 > 正文

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

2024-04-01 00:48:28阅读 4

ClassPathXmlApplicationContext的获得方式:ClassPathXmlApplicationContext context =

new ClassPathXmlApplicationContext("Beans.xml");

重要的成员变量:

beanFactory: DefaultListableBeanFactory

beanFactoryPostProcessors: ArrayList

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

configLocations: Beans.xml

177c99049abd

Logger: Jdk14Logger

177c99049abd

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

使用方法containsBean:

177c99049abd

delegate给getBeanFactory().containsBean方法:

177c99049abd

这个containsBean方法定义在AbstractApplicationContext里:

177c99049abd

177c99049abd

177c99049abd

而getBeanFactory的实现,位于AbstractRefreshableApplicationContext里:

177c99049abd

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

177c99049abd

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

177c99049abd

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

177c99049abd

网站文章

  • 分布式架构基础(一)远程通信协议

    分布式架构基础(一)远程通信协议

    远程通信协议 一个http请求的整个流程 负责域名解析的DNS服务 首先,用户访问一个域名,会经过DNS解析。 DNS(Domain Name System),和HTTP协议一样是位于应用层的协议,主...

    2024-04-01 00:47:58
  • 基于注解的用户权限拦截Spring HandlerInterceptor

    基于注解的用户权限拦截Spring HandlerInterceptor

    Spring Boot (v2.0.5.RELEASE)程序中有些资源(接口)是需要用户登录才能够使用的,或者是具有某种角色的用户(比如普通登录用户,或者系统管理员等)才能使用,本篇文章...

    2024-04-01 00:47:51
  • Laravel 打印SQL语句

    类class之前记得引用use Illuminate\Support\Facades\DB; 在方法里面这样干 DB::connection()->enableQueryLog();#开启执行日...

    2024-04-01 00:47:27
  • 大一大学计算机心得,大学生计算机实训心得体会

    大学生计算机实训心得体会是关于心得体会范文的精选内容,内容包含了与大学生计算机实训心得体会相关的经典语句以及心得体会范文大全、心得体会范文范文、心得体会范文模板等相关资料,为朋友们查找心得体会范文的资...

    2024-04-01 00:47:18
  • BugkuCTF-WEB部分题解(一)

    BugkuCTF-WEB部分题解(一)

    域名解析 访问 flag.baidu.com 提示:找不到网站 无法进行DNS解析 直接访问123.206.87.240 返回400 Bad Request 查询400错误 详情 两种方法解析域名 1.修改hosts文件: 直接在hosts文件中添加flag.bugku.com 120.24.86.145 2.修改头信息: 用burpsuit抓包修改host头信息为flag.bugku...

    2024-04-01 00:47:10
  • HTML5新增元素和移除的元素?

    新增元素:图像Canvas多媒体video、audio本地存储localStorage、sessionStorage语义化更好的内容元素aticle、header、footer、nav、section表单控件date、time、canlendar、url、search新的技术webworker、websocket、Geolocation移除的元...

    2024-04-01 00:46:44
  • mysql数据库基础

    mysql数据库基础

    数据库的基本介绍相关概念DBMS:数据库管理系统,就是数据库软件数据库:保持有组织的数据的容器(通常是一个文件和一组文件),不管数据是什么或如何组织的,是通过DBMS创建和操纵的容器。SQL:结构化查询语句,是专门用来与数据库沟通的语言,需要一个支持SQL语句执行的应用程序表:某种特定类型数据的结构化清单,存储在表中的数据是同一种类型的数据或清单主流数据库介绍Oracle: 甲...

    2024-04-01 00:46:38
  • Android List与json的相互转换

    2、写一个AddressBean实体类。1、fastjson框架导入。2、List转json。3、json转List。

    2024-04-01 00:46:30
  • (二)图像处理技术概述

    (二)图像处理技术概述

    目录 2.1 图像处理技术概述 2.2 图像成像过程 2.2.1 视觉过程 2.2.2 成像变换 2.2.3 成像亮度 2.2.4 视觉系统对光的感知特点 2.2.5 采样和量化 2.3 像素间联系 ...

    2024-04-01 00:46:23
  • Maven开发环境搭建

    Maven开发环境搭建

    在进行Maven开发环境搭建之前我们必须要有两个前提1.我们的电脑已经安装并配置了jdk;2.因为Maven工作时经常需要通过网络下载各种所需文件,因此我们需要保证网络的通常.

    2024-04-01 00:45:58