当前位置: 首页 > news >正文

Spring源码:Bean创建、Bean获取

Bean是怎么被创建,如何获取Bean,基于Spring 5.3.24版本,Spring Boot 可用 2.7.6

结论:

  • 创建:非懒加载的单实例bean在容器创建的时候创建,通过beanFactorydoGetBean方法,利用反射进行创建,创建完后存储在名为 singletonObjects 的map 集合里,key为bean名称,value为bean对象
  • 获取:获取bean时通过调用doGetBean方法从之前的map集合里进行获取

创建Bean

第一步:编写基础代码,编写一个实体类,在applicationContext配置文件中注册,跟断点进行调试
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这个refresh 很重要,
在这里插入图片描述

初始化非懒加载的单例 Bean
在这里插入图片描述

和上面方法注释一样
在这里插入图片描述

查看它的实现,如果有多个实现类,需要Debug的方式去跳转
在这里插入图片描述

来到DefaultListableBeanFactory如果不是FactoryBean
在这里插入图片描述
在这里插入图片描述

注释很明显,写的创建bean实例,而且我们这个是单例bean
在这里插入图片描述

这里必须用断点的形式,然后进入该方法
在这里插入图片描述

可以看到又回到了doGetBean方法里的createBean这里
在这里插入图片描述

然后通过断点进入该方法
在这里插入图片描述

断点进去
在这里插入图片描述

使用无参构造实例化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看到通过反射创建了对象,newInstance 方法
在这里插入图片描述

何时加入容器中,在getSingleton 方法里创建完对象后
在这里插入图片描述
在这里插入图片描述

获取Bean在这里插入图片描述

getBeanFactory() 后调用 getBean()
在这里插入图片描述

可以看到这里又调用 doGetBean 方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后得到bean
在这里插入图片描述

相关文章:

Spring源码:Bean创建、Bean获取

Bean是怎么被创建,如何获取Bean,基于Spring 5.3.24版本,Spring Boot 可用 2.7.6 结论: 创建:非懒加载的单实例bean在容器创建的时候创建,通过beanFactory的doGetBean方法,利用反射进行创建&…...

MetaArena推出《Final Glory》:引领Web3游戏技术新风向

随着区块链技术的日益成熟,Web3游戏成为了游戏产业探索的新方向,将去中心化经济与虚拟世界结合在一起,形成了一个全新的生态体系。然而,尽管Web3游戏展示了令人兴奋的可能性,但其背后的技术障碍依旧严峻,特…...

玩转Shodan:深度挖掘特定漏洞与脆弱资产的实战技巧

内容预览 ≧∀≦ゞ Shodan进阶使用之发现并解锁隐藏的脆弱资产声明导语VNC未授权访问查询被黑的网站查询思科未授权设备查询MongoDB未授权访问搜索后台管理页面结语 Shodan进阶使用之发现并解锁隐藏的脆弱资产 声明 笔记内容参考了B站UP主泷羽sec的学习视频,如有侵…...

Java程序设计:spring boot(8)——API ⽂档构建⼯具 - Swagger2

目录 1 环境整合配置 2 Swagger2 常⽤注解说明 2.1 Api 2.2 ApiOperation 2.3 ApiImplicitParams 2.4 ApiResponses 2.5 ApiModel 3 用户模块注解配置 3.1 Controller 使用注解 3.2 JavaBean 使用注解 4 Swagger2 接⼝⽂档访问 由于 Spring Boot 能够快速开发、便捷…...

【Python】if选择判断结构详解:逻辑分支与条件判断

目录 🍔 if选择判断结构作用 1.1 if选择判断结构的基本语法 1.2 if选择结构案例 1.3 if...else...结构 1.4 if...elif...else多条件判断结构 1.5 if嵌套结构 🍔 综合案例:石头剪刀布 2.1 需求分析 2.2 代码实现 2.3 随机出拳 &…...

邮件系统SSL加密传输,保护你的电子邮件免受网络威胁

在互联网的浪潮中,企业数字化转型的步伐不断加快。企业邮箱作为数字化应用的重要组成部分,已成为员工沟通、协同工作和企业管理的关键工具。但是在公共网络安全性普遍较弱的背景下,黑客容易侵入企业网络,监控流量,截获…...

Redis_写时复制(cow)

Redis会根据配置,每隔一段时间中对Redis服务中当下的数据集进行快照。配置自动生成rdb文件,后台使用的是bgsave方式。 save 60 1000 //关闭RDB只需要将所有的save保存策略注释掉即可Redis借助操作系统提供的写时复制技术(Copy-On-Write, COW…...

【mysql进阶】4-5. InnoDB 内存结构

InnoDB 内存结构 1 InnoDB存储引擎中内存结构的主要组成部分有哪些? 🔍 分析过程 从官⽹给出的InnoDB架构图中可以找到答案 InnoDB存储引擎架构链接:https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html ✅ 解答问题 InnoD…...

从零入门扣子Bot开发

从零入门扣子Bot开发 工作流简单介绍问题思考工作流实例 图像流简单介绍瘦脸图像流的设计创建图像流设计流程 总结参考链接 工作流简单介绍 工作流起源于生产组织和办公自动化领域,是指在计算机应用环境下,对业务过程的部分或整体进行自动化处理。它通过…...

中药是怎么计价的 复制药方文本划价系统操作教程

一、概述 【软件资源文件下载可以点文章最后卡片】 通过复制药方文本,快速划价并计算出总金额。 可以保存记录,如日期,客户名称,药方名称,金额等,便于查询统计或导出表格。 中药划价系统怎么收费 中药是…...

怎么做网站?

现代网站建设涵盖了多个方面,远不仅仅是简单的网站制作。如果您有兴趣创建网站或者想了解如何建立一个成功的网站,那么您需要了解众多与之相关的关键要素。本文将为您详细介绍这些要素。 选域名:域名是您网站的标识,因此选择一个…...

Centos Stream 9部署Zabbix7.0LTS

目录 1. 系统环境1.1 编辑配置文件/etc/yum.repos.d/epel.repo1.2 安装Zabbix存储库1.3 安装Zabbix server,Web前端,agent 2. MySQL/MariaDB 数据库2.1安装和配置 MySQL/MariaDB 数据库2.2 创建初始数据库2.3 导入初始架构和数据,系统将提示您…...

深入理解Allan方差:用体重数据分析误差的时间尺度与稳定性

文章目录 1. 什么是Allan方差?Allan方差的特点 2. Allan方差与传统方差的区别3. 用体重数据举例分析波动性场景A:体重变化较平稳场景B:体重变化波动较大 4. Allan方差的计算公式与详细步骤5. 不同时间块长度下的Allan方差计算场景A的Allan方差…...

Elasticsearch 解析:倒排索引机制/字段类型/语法/常见问题

Elasticsearch 是一个分布式的开源搜索引擎,广泛用于全文搜索、分析和数据存储。它基于 Apache Lucene 构建,支持 RESTful 风格的 API,使得开发者能够高效地存储和检索数据。本文将详细讲解 Elasticsearch 的基本原理,特别是其倒排…...

数字后端零基础入门系列 | Innovus零基础LAB学习Day5

###Module 12 RC参数提取和时序分析 数字后端零基础入门系列 | Innovus零基础LAB学习Day4 数字后端零基础入门系列 | Innovus零基础LAB学习Day3 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字后端零基础入门系列 | Innovus零基础LAB学习Day1 ###LAB12-1 这个章节…...

Redis 内存回收策略小结

Redis 内存回收策略 及时回收内存中不需要的数据,能有效地保持性能和防止内存溢出。Redis内存回收主要有两种场景 删除过期的键值对内存使用达到maxmemory时触发回收策略 删除过期的键值对 惰性删除: 在查询时如果发现 该键值对已经过期则执行删除操作…...

React常用前端框架合集

React 是 Facebook 开发的一款用于构建用户界面的 JavaScript 库。由于其高效、灵活的特性,React 成为了目前最流行的前端框架之一。为了帮助开发者更好地利用 React 构建应用,市场上涌现了许多优秀的辅助工具和框架。本文将详细介绍几个常用的 React 前…...

python对文件的读写操作

任务:读取文件夹下的批量txt数据,并将其写入到对应的word文档中。 txt文件中包含:编号、报告内容和表格数据。写入到word当中:编号、报告内容、表格数据、人格雷达图以及对应的详细说明(详细说明是根据表格中的标识那一列中的加号…...

Redis工具类(解决缓存穿透、缓存击穿)

文章目录 前言IBloomFilterObjectMapUtilsCacheClient使用示例具体业务的布隆过滤器控制层服务层 前言 该工具类包含以下功能: 1.将任意对象存储在 hash 类型的 key 中,并可以设置 TTL 2.将任意对象存储在 hash 类型的 key 中,并且可以设置…...

Air780E量产binpkg文件的获取方法

Air780E量产binpkg文件如何获取呢?操作方法如下。 一、背景 最近luatos开发客户增多,客户在量产烧录的时候需要binpkg文件,但是有些客户不知道binpkg文件是什么,在哪里获取,是否可以用soc文件提取出来,使…...

C++STL之stack

1.stack的使用 函数说明 接口说明 stack() 构造空的栈 empty() 检测 stack 是否为空 size() 返回 stack 中元素的个数 top() 返回栈顶元素的引用 push() 将元素 val 压入 stack 中 pop() 将 stack 中尾部的元素弹出 2.stack的模拟实现 #include<vector> namespace abc { …...

git的学习之远程进行操作

1.代码托管GitHub&#xff1a;充当中央服务器仓库的角色 2.git远程进行操作 3.配置本地服务器的公钥 4.推送 5.git远程操作 pull .gitignore 6.给命令配置别名 git config --global alias.st status 7.标签管理 git tag -a [name] -m "XXX" [commit_id] 操作标签…...

蓝桥杯普及题

[蓝桥杯 2024 省 B] 好数 题目描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。 给定一个正整数 N N N,请计算从 1 1...

Spreadsheet导出excel

记录下常用的方法 数字转字符&#xff1a;Coordinate::stringFromColumnIndex(27); 输出 AA字符转数字&#xff1a;Coordinate::columnIndexFromString(AA); 输出27设置单元格式 eg:(设置为保留两位小数点) $sheet->getStyle($columnLetter)->getNumberFormat()->set…...

Leetcode|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

15.三数之和 哈希解法&#xff1a; 用俩个for循环求出&#xff0c;所需的a和b&#xff0c;再用哈希表&#xff0c;判断剩余的那个c是否在数组 class Solution { public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>…...

使用ceph-csi把ceph-fs做为k8s的storageclass使用

背景 ceph三节点集群除了做为对象存储使用&#xff0c;计划使用cephfs替代掉k8s里面现有的nfs-storageclass。 思路 整体实现参考ceph官方的ceph csi实现&#xff0c;这套环境是arm架构的&#xff0c;即ceph和k8s都是在arm上实现。实测下来也兼容。 ceph-fs有两种两种挂载方…...

太速科技-212-RCP-601 CPCI刀片计算机

RCP-601 CPCI刀片计算机 一、产品简介 RCP-601是一款基于Intel i7双核四线程的高性能CPCI刀片式计算机&#xff0c;同时&#xff0c;将CPCI产品的欧卡结构及其可靠性、可维护性、可管理性与计算机的抗振动、抗冲击、抗宽温环境急剧变化等恶劣环境特性进行融合。产品特别…...

【解决 Windows 下 SSH “Bad owner or permissions“ 错误及端口转发问题详解】

使用 Windows 连接远程服务器出现 Bad owner or permissions 错误及解决方案 在 Windows 系统上连接远程服务器时&#xff0c;使用 SSH 可能会遇到以下错误&#xff1a; Bad owner or permissions on C:\Users\username/.ssh/config这个问题通常是由于 SSH 配置文件 .ssh/con…...

使用预训练的BERT进行金融领域问答

获取更多完整项目代码数据集&#xff0c;点此加入免费社区群 &#xff1a; 首页-置顶必看 1. 项目简介 本项目旨在开发并优化一个基于预训练BERT模型的问答系统&#xff0c;专注于金融领域的应用。随着金融市场信息复杂性和规模的增加&#xff0c;传统的信息检索方法难以高效…...

ReactOS系统中MM_REGION结构体的声明

ReactOS系统中MM_REGION结构体的声明 ReactOS系统中MM_REGION结构体的声明 文章目录 ReactOS系统中MM_REGION结构体的声明MM_REGION MM_REGION typedef struct _MM_REGION {ULONG Type;//MEM_COMMIT,MEM_RESERVEULONG Protect;//PAGE_READONLYY,PAGE_READ_WRITEULONG Length;…...

电商网站模板/郑州seo技术博客

页眉设置为章节名&#xff08;WPS&#xff09; 最近在肝毕业论文&#xff0c;毕业论文最头疼的就是格式了&#xff0c;当时也是头疼&#xff0c;现在会了之后来总结一下 页眉页脚要求 一般毕设的页眉页脚的要求有 将 奇数页的页眉为 章序及章标题&#xff0c;例如&#xff1…...

安徽省政府网站建设/百度网盘首页

cocos2d-x最新支持了webp图片格式&#xff0c;google在2010年发布的这个图片格式具备比jpg和png更高的压缩比&#xff0c;并且支持alpha通道。 图片体积对比&#xff1a; 原始图片&#xff08;map_008_BG_2.png 1024*1024的一张背景图&#xff09; 大小910k 压缩为png8 369k …...

备案 网站起名/惊艳的网站设计

在数据处理业务中&#xff0c;经常要把文件结构相同或近似相同的数据文件合并成一个文件&#xff0c;或者将一个比较大的数据文件拆分成小的数据文件。本文将介绍文本文件和 Excel 文件合并及拆分会遇到的几种情况&#xff0c;并提供用 esProc SPL 编写的代码示例。esProc 是专…...

wordpress head.php/dw网页设计模板网站

如果你把oracle11g装在笔记本上并让服务开机启动的话&#xff0c;会明显感受到笔记本比平时启动慢几十秒&#xff0c; 差点的甚至1-2分钟&#xff0c;但是不开机启动吧&#xff0c;每次到服务里打开&#xff0c;很麻烦... 用批处理文件打开和关闭不失为一个好办法。 -------…...

wordpress静态cdn/关键词搜索排名软件

0: 由于天朝的特殊&#xff0c;在国内很不好编译&#xff08;主要是依赖库下载不了&#xff09;。 所以记录下编译过程 需要的工具: debian 或者其他linux其他版本。 make,git,golang(最好1.11版本以上) 编译过程 export GOPATH/data/tidb mkdir -p /data/tidb/src/githu…...

汽车网站建设策划方案/设计网站官网

技术债务「技术债务」是开发团队在设计或架构选型时&#xff0c;从短期效应的角度选择了一个易于实现的方案。但从长远来看&#xff0c;这种方案会带来更消极的影响&#xff0c;亦即开发团队所欠的债务。简单的说就是为了快速地解决问题&#xff0c;而采取的不规范的方案。比如…...