getBean方法(一)

article/2025/10/26 3:30:34
我们先看看这个方法的轮廓流程
这个getbean的轮廓方法很长.
先分两种情况:
一种是在缓存实例中能拿到bean,  (主要是factroyBean的处理, 执行所有已注册的 BeanPostProcessor 的 postProcessAfterInitialization 方法)
前边是校验 (如果name以“&”为前缀,但是beanInstance不是FactoryBean,则抛异常) 通过之后是从缓存中获取到factroyBean的实例
从factroyBean中获取实例
执行所有已注册的 BeanPostProcessor 的 postProcessAfterInitialization 方法   ->   object = postProcessObjectFromFactoryBean(object, beanName);
另一种是拿不到
1.先判断如果是要创建这个bean会把beanName缓存到alreadyCreated 中
2.根据beanName 拿到  MergedBeanDefinition   
3.拿到当前bean所依赖的beanName集合,实例化自己之前先要实例化自己依赖的bean
3.1检查是否存在循环依赖,有则抛异常
3.2将两者依赖关系注册到缓存中
3.3先实例化依赖bean
接下来分3中类型实例化bean
4.1单例类型
beforeSingletonCreation 吧正在实例化的bean添加到容器中    创建完成后这个方法afterSingletonCreation  吧从正在创建实例化容器中将beanName移除
4.2原型类型
4.3其他类型

http://chatgpt.dhexx.cn/article/nbNrfwI3.shtml

相关文章

Spring源码分析之getBean主流程分析

当我们通过向Spring容器获取某个bean的时候,总是调用Spring中重载的各种getBean方法。那么,getBean中的流程是什么样的? 通过本文,你将对getBean方法的主流程有一个详细的认识。 入口当然是getBean方法: public Obje…

getBean( )流程

getBean() 方法是顶层接口 BeanFactory 提供的,一共五个原型。AbstractBeanFactory作为抽象实现,复写了其中3个方法, Overridepublic Object getBean(String name) throws BeansException {return doGetBean(name, null, null, false);}Overr…

Prometheus监控MongoDB数据库

监控环境:Prometheus 数据库:MongoDB 3.4.6 集群,3个节点 监控工具:mongodb_exporter 我这个模板是自己二次开发的。使用mongodb_exporter 监控 阿里云的MongoDB数据库 各位根据自己的需求进行使用 1、创建Mongodb监控可读账…

DBeaver 数据库管理工具

DBeaver 数据库管理工具 DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好,且遵循ASL 协议。由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,比如Windows、Linux、macOS 等操作…

mysql数据库监控

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据…

一些数据库监控,优化,管理工具

http://www.itpub.net/viewthread.php?tid1057814&extra&page1 一些数据库监控,优化,管理工具 ******************************************************************* 这两天网盘连不上了,导致国内用户暂时无法下载。大家下载时需要用代理。这里提供一个比…

oracle实时监控工具

oracle实时监控工具市面上不多,但是兼具数据维护管理及性能实时监控的工具可以说更少,而实时监控又是项目运维管理,测试,开发但环节不可少的功能,目前有一款JAVA开发的,基于WEB的:TreeSoft数据库…

数据库的可用监控

监控 数据库是否连接和读写以及数据库的连接数 1、确认数据库是否可以通过网络连接 造成连接不成功的原因:防火墙 TCP/IP连接被占满 监控的方式: 1、mysqladmin -u 监控用户 -p 密码 -h 监控的服务器地址 ping 首先我们在MySQL下要建立一个mysql 的用户…

数据库实时监控,实时监控数据库数据

为了满足大多数用户对数据库的监控和运维需求,系统实时采集了监控数据库的主要指标,并提供完整的报警、性能容量分析和报告功能。  系统以数字形式收集现场设备发送的数据,通过实时数据操作实现监控功能,并提供有利于监控生产过…

数据库监控工具SQL Monitor:可同时实现云和本地的SQL Server数据库监视

SQL Monitor提供了一个基于Web的监视,在桌面计算机和移动设备上实时地监控服务器的性能。使用SQL Monitor时,只要一出现问题,你将会通过邮件和用户界面接收到警告,SQL Monitor会快速地做全局检查,检查单机,…

mysql实时监控工具

mysql实时监控工具市面上有许多了,但是兼具数据维护管理及性能实时监控的工具不多,可以说很少,而实时监控又是项目运维管理,测试,开发但环节不可少的功能,目前有一款JAVA开发的,基于WEB的&#…

数据库监控

数据库监控 一、数据库监控介绍 1、对什么进行监控 (1) 对数据库服务可用性进行监控 数据库进程或是端口存在并不意味着数据库就是可用的; 通过网络连接到数据库并且确定数据库是可以对外提供服务的。 (2) 对数据库性能进行监控 QPS和TPS; 并发线程数量…

MySQL - 数据库的监控方式

对于当前数据库的监控方式有很多,分为数据库自带、商用、开源三大类,每一种都有各自的特色; 而对于 mysql 数据库由于其有很高的社区活跃度,监控方式更是多种多样,不管哪种监控方式最核心的就是监控数据,获…

现在的SQLSERVER数据库监控软件有哪些?

现在的SQLSERVER数据库监控软件有哪些? 收集了一下当前SQLSERVER数据库监控软件,发现开源免费的真的是“没有” Questsoftware Quests spotlight(收费) http://www.quest.com/search/search-results.aspx?qspotlight Ideras S…

2019年最好用的6款数据库监控工具

为了让数据发挥最大的价值,通常我们都会采用数据库监控工具,本文将为大家介绍 6 款最好用的数据库监控工具。 "数据就是一切!"我们都曾听过这种大胆的说法,但其实事实真是这样,而且数据还无处不在。如今&…

2019 年最好用的 7 款数据库监控工具

活动预告:数据库百家争鸣的背景下,Oracle究竟值不值得继续学习?未来Oracle DBA向何处去?如何在新的环境下站稳脚跟? 本周六,在北京将迎来一年一度的 ACOUG年会,在本次年会上,行业技术…

【正版软件】Navicat Monitor 实时数据库监控工具,一套安全、简单而且无代理的远程服务器监控工具。

简言 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 SQL Server,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等…

数据库监控工具

数据库监控是Applications Manager重要功能之一,它能够帮助数据库管理员(DBA)和系统管理员监控包含Oracle、SQL Server、MySQL、Sybase、IBM DB2等多种类异构型的数据库环境。作为无代理的数据库监控工具,Applications Manager通过执行数据库查询来采集性…

最好用的数据库监控工具和数据库知识

数据库监控的目的? 数据库监控的主要目标是确保数据在需要时是可用的。这听起来很简单,但实际操作却相当复杂,部分原因在于组件的数量和种类。从硬件到软件,数据库监控工具必须始终确保所有组件都是可用的,并且在正常…

数据库监控工具及相关知识

数据库运行状态监控,是对数据库各种运行指标进行全方位实时监控。使之能够提前发现和识别数据库异常以及潜在的性能问题,并及时将数据库异常报告给管理员,通过针对各项运行指标的统计分析报表,帮助管理员、运维人员、决策者多视角…