(十)Spring源码阅读:finishBeanFactoryInitialization方法

news2025/1/8 5:04:32

一、概述

该方法是实例化bean的主要方法,它实现的主要流程如下图所示。

 

 这是方法执行的主要流程图。

 具体执行流程如下图,我们将按照具体执行流程一个个介绍具体的方法。

二、主要方法

finishBeanFactoryInitialization内部调用了getBean方法。

 getBean方法最总调用了AbstractBeanFactory的doGetBean方法。

 

transformedBeanName对bean的名称进行了转化。

 

getMergedLocalBeanDefinition方法将从xml中读取并形成的GenericBeanDefinition与父类的BeanDefinition进行融合形成了RootBeanDefinition。

 之后调用createBean方法进行Bean的创建。

 resolveBeforeInstantiation方法实行了实例化前的前置增强。

 doCreateBean方法进行了bean的创建。

 populateBean进行了属性的填充

 populateBean还进行了实例化的后置增强。

 initializeBean进行了bean的初始化。

 initializeBean方法内部,调用了初始化前置增强和后置增强,并最终调用了初始化方法,完成了bean的创建流程。

 

参考文章:

https://www.cnblogs.com/lucidar/articles/17079257.html

spring源码系列-Bean的创建流程 - 简书

Spring官网阅读(四)BeanDefinition(上)(2)-阿里云开发者社区

mini-spring 源码阅读(一) bean的创建过程_weixin_46564779的博客-CSDN博客

Bean创建流程一(源码分析)_bean的创建流程_Mr_Liuxz的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AIGC+机器人=具身智能?硅谷最酷的两个男人不谋而合预演“下个浪潮”

收集整理|小鱼新的AI题材层出不穷,这次轮到“机器人AI"融合而成的具身智能概念。 “硅谷钢铁侠"马斯克和热爱黑色皮衣的"显卡教父”黄仁勋均作出积极表态,可谓不谋而合。 当地时间5月16日,特斯拉2023年年度股东大会召开&…

unity DoTween动画插件的使用(最全)

DOTween是最常用的动画插件之一,比使用Unity自带脚本写动画,方便很多。 插件获取 untiy商店插件地址 https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676 DOTween商城地址,开发文档 http://dotween.demigiant.com 导入和设置 DOTween首次使…

离散数学_九章:关系 —— 拓扑排序

拓扑排序 背景知识相容一个引理什么是拓扑排序 拓扑排序算法(伪代码)几个实例例1例2 假设一个项目由20个不同的任务构成。某些任务只能在其他任务结束之后完成。如何找到关于这些任务的顺序? 为了对这个问题建模,我们在任务的集合…

mysql强制修改mysql数据库密码(无需原密码)

1.创建新记事本new_password.txt 定位到记事本绝对路径,我直接放桌面 C:\Users\bao123\Desktop 为用户为 root 新密码 123456为例 ALTER user rootlocalhost identified by 123456; 为用户为 mytest 新密码 88888888为例 ALTER user mytestlocalhost identifi…

opencv_c++学习(十三)

一、创建滑动条 createTrackbar(const String & trackbarname, const String & winname, int* value, int count, onChange , TrackbarCallback 0, void * userdata 0)trackbarname:滑动条的名称。 winname:创建滑动条窗口的名称。 value:指向整数变量的指针&#xff0…

Harbor在arm架构下亲测编译成功

先安装好Docker,docker-compose 华为云arm架构安装Docker arm架构安装docker-compose Harbor官网: https://github.com/goharbor/harbor/releases Harbor官方没有提供arm架构的包,需要自己编译,我编译好的版本是:harbor-1.9.1 大家可以按我的博客,自己去编译,或评论留言给…

Vivado 下 LED 流水灯实验

目录 Vivado 下 LED 流水灯实验 1、实验简介 2、实验环境 3、实验原理 3.1、LED硬件电路 3.2、程序设计 4、Vivado 工程 4.1、创建工程 4.2、编写流水灯的 verilog代码 1. 点击 Project Manager 下的 Add Sources 图标(或者使用快捷键 AltA)。…

基于协同过滤的推荐算法

基于协同过滤的推荐算法 基于协同过滤(CF)的推荐基于近邻的协同过滤基于用户的协同过滤(User-CF)基于物品的协同过滤(Item-CF)User-CF 和 Item-CF 的比较基于协同过滤的推荐优缺点基于模型的协同过滤隐语义…

WoW 游戏软件

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 我们选择Tcp协议进行传输,之所以采用tcp,首先是因为tcp传输稳定,相比于udp不稳定的传输,tcp能确保消息一定传输出去。然后是tcp有服务器,相比于 p2p 无服务器模型,tc…

RocketMQ 下载安装

一、下载地址 https://rocketmq.apache.org/download/ 下载完成解压即可 二、安装 2.1 系统环境变量配置 1、右键我的电脑–>属性 ​ 2、高级系统设置–环境变量 ​ 3、系统变量中–>新建 2.2 启动NAMESERVER cmd命令框执行进入至‘MQ文件夹\bin’下 start mqnames…

【教学类-33-02】食物加加加2.0版(3、4、5、10、15、20以内数字加法,随机抽数)

作品展示 3以内点数加法:加法最大值6 4以内点数加法:加法最大值8 背景需求: 幼儿在完成“5以内加法21题、5以内减法21题”时,有两个特点: 1、50%幼儿口算、另外50%不会做的孩子虽然画圈划圈,但更多还是习…

数据结构_图

目录 1. 图的基本概念 1.1 图的定义 1.1.1 有向图 1.1.2 无向图 1.1.3 简单图、多重图 1.1.4 完全图(也称简单完全图) 1.1.5 子图 1.1.6 连通、连通图和连通分量 1.1.7 强连通图、强连通分量 1.1.8 生成树、生成森林 1.1.9 顶点的度、入度和出…

MapReduce【自定义InputFormat】

MapReduce在处理小文件时效率很低,但面对大量的小文件又不可避免,这个时候就需要相应的解决方案。 默认的输入格式为TextInputFormat,对于小文件,它是按照它的父类FileInputFormat的切片机制来切片的,也就是不管一个文…

Java基础学习(17)网络编程

Java基础学习 一、 网络编程1.1 什么是网络编程1.2 常见的软件架构:1.3 网络编程的三要素1.4 IP1.4.1 InetAddress用法 1.5 端口号1.6 协议1.6.1 UDP协议1.6.1.1 UDP的三种通信方式 1.6.2 TCP协议1.6.2.1 TCP底层原理 一、 网络编程 1.1 什么是网络编程 解释&…

C++常用的支持中文的GUI库Qt 6之一:下载、安装与使用

C常用的支持中文的GUI库Qt 6之一:下载、安装与使用 因为Qt发展变化较快,网上许多介绍Qt的下载、安装与使用已过时,初学者常因行不通而受挫,故此发布本文,以Qt 6.2.4开源版在Windows 10安装与使用为例介绍。 C好用的GU…

DM8:达梦数据库宕机版本记录汇总(持续更新中)

DM8:达梦数据库宕机版本记录汇总(持续更新中) 环境介绍1 SQL引起的数据库故障1.1 SQL引起的数据库故障汇总表1.2 gdb dmserver core 调试得到数据库崩溃时的内存信息1.3 优化参数解决故障 环境介绍 在测试环境或生产环境,特别情况下会遇到数…

go tool pprof 参数 ‘-base‘ 和 ‘-diff_base‘ 之间的区别

go tool pprof 工具是用于分析由 runtime/pprof包 或 net/http/pprof包产生的profile数据,完整的帮助文档在 https://github.com/google/pprof/blob/main/doc/README.md ,pprof 工具支持的参数很多,可以用命令 go tool pprof --help来查看全部…

DJ5-4 交换局域网(第一节课)

目录 一、局域网概述 1、LAN 的特点和分类 2、常见的网络拓扑结构 二、计算机与局域网的连接 三、局域网体系结构 四、链路层寻址地址 1、MAC 地址分配 2、MAC 地址识别 五、ARP 地址解析协议 1、ARP 地址解析协议 2、ARP:两个主机位于同一个局域网 3、…

网络计算模式复习(六)

什么是CDN CDN的全称是Content Delivery Network,即内容分发网络。 其目的通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决Internet网络拥挤的状况&…

socket套接字通信 TCP传输控制协议/IP网络协议 5.18

B/S :浏览器和服务器 C/S :客户机和服务器 网络的体系结构: 网络的层次结构和每层所使用协议的集合 网络采用分层管理的方法,将网络的功能划分为不同的模块 OSI模型: 共7种: 应用层:接收用户的数据,面…