学习Spring之Srping IOC运行时序图

从JTAG到AS模式:一文搞懂EP4CE10E22C8N所有配置引脚(MSEL, nCONFIG, DATA0)的用法 本文深入解析EP4CE10E22C8N FPGA的配置引脚(MSEL, nCONFIG, DATA0)在不同模式下的使用方法,特别关注从JTAG到AS模式的切换要点。通过详细的配置模式对比、状态机分析和PCB布局建议,帮助开发者避免常见陷阱,提升FPGA配置成功率。 阅读详情

加载XML文件——创建IOC容器时序图


源码理解
首先需要找到入口。IOC容器初始化运行的入口。

回顾
什么是SpringIOC
IOC(Inversion Of Control)控制反转,所谓控制反转,就是把我们代码中需要实现的对象的创建、依赖。反转给容器来实现。同时需要一种描述让容器知道需要创建的对象和对象之间的关系。即配置文件。

寻找源码入口
1.关于BeanFactory

BeanFactory:顶层接口类,定义了IOC容器的基本规范。
三个重要子类:ListableBeanFactory、HierarchicalBeanFactory 和 AutowireCapableBeanFactory
最终的默认实现类:DefaultListableBeanFactory
Spring内部在操作过程中对象的传递和转化过程中,有这各自的职能。如ListableBeanFactory接口,表示可初始化列表Bean

根据时序图来解析
如何找到入口

 

通过对Spring的使用以及初步的认识,我们知道Spring的初始化是从DispatcherServlet开始的,我们可以发现Spring中有许多init开头的方法,顾名思义,这些方法就是为Spring初始化做准备的。通过其继承关系,我们可以在其父类中找到最初的init()方法。

 

我们在HttpServletBean中可以发现有一个名为initServletBean()的方法。

注意圈红的代码,结合我们在项目中使用Spring的时候控制台打出的日志。

没有任何问题,我们找到入口了。

入口已经找到,接下来慢慢抽丝剥茧揭开神秘的IOC容器的“面纱”

在initservletBean方法中,我们可以发现调用了initWebApplicationContext方法,我们来看这个方法

有一个方法叫作configureAndRefreshWebApplicationContext

在此方法中调用了refresh()方法,我们可以简单理解为,在Spring启动过程中会调用refresh方法。这个时候让我们在这个方法上多加点注意力。

IOC容器初始化的流程
容器启动的过程大概可以概括为三个步骤定位、加载和注册。即定位我们的配置文件,加载配置文件和根据配置文件进行注册

以ApplicationContext为例,我们可以在main中启动对xml文件的加载。以此来帮助我们去认识IOC容器。

通过对其构造方法的跟踪,我们发现调用了refresh()方法,也就是我们时序图的起点。通过setConfigLocations方法我们也可以发现,配置文件通过字符串数组的形式进行传递。这里可以作为我们学习IOC容器的起点,即,定位配置文件。

根据时序图我们可以一步一步去学习认识IOC容器的初始化过程。

详细的IOC运行时序图

 

 

 

 

 

欢迎关注公众号:“架构一线”,定期分享一些实战心得,互联网前沿技术等.

产品竞争策略方法论:构建“差异化 + 结构化 + 系统化”的竞争优势 本文系统探讨了IoT产品竞争策略,指出当前企业普遍存在硬件能力强但商业竞争能力不足的问题。文章构建了五层竞争模型(产品层、体验层、服务层、数据层、生态层),提出五大核心竞争策略(成本领先、差异化竞争、聚焦竞争、生态竞争、数据驱动竞争),并详细阐述了差异化设计方法。通过行业案例分析(小米、苹果、特斯拉)和五步落地方法,强调从硬件竞争向系统优势转变的重要性。文章指出IoT竞争胜负关键在后半场的数据运营和服务延伸,建议企业通过构建差异化能力、完善服务体系、建立数据体系、逐步构建生态来避免价格战陷阱,实现从跟随到领 阅读详情

相关推荐

西门子1200之PID用法与控制

西门子PID加热试验

gyxgyx789的博客 6258

Spring之Spring IoC时序图

Spring IoC加载时序图解析时序图大纲预览 时序图大纲预览

weixin_44692700的博客 1259

MITRE ATT&CK超详细学习笔记-01(背景,术语,案例)

MITRE是一个向美国政府提供系统工程、研究开发和信息技术支持的非营利性组织,于1958年从麻省理工学院林肯实验室分离出来后参与了许多最高机密的政府项目,开展了大量的网络安全实践。例如,MITRE公司在1999年发起了常见披露漏洞项目(CVE,CommonVulnera-bilitiesandExposures)并维护至今。其后,MITRE公司还维护了常见缺陷列表(CWE,CommonWeaknessEnumeration)这个安全漏洞词典。.........

Zichel77的博客 1万+

Spring 之Srping IOC运行时序图

加载XML文件——创建IOC容器时序图 源码理解 首先需要找到入口。IOC容器初始化运行的入口。 回顾 什么是SpringIOC IOC(Inversion Of Control)控制反转,所谓控制反转,就是把我们代码中需要实现的对象的创建、依赖。反转给容器来实现。同时需要一种描述让容器知道需要创建的对象和对象之间的关系。即配置文件。 寻找源码入口 1.关于BeanFactory...

记录成长的过程 2335

YOLOv11 网络结构详解:一文看懂 Backbone、Head、C3k2、SPPF 和 Detect 检测头

在使用 YOLOv11 进行目标检测时,我们经常会接触到或这样的模型配置文件。backbone和head分别是什么意思?ConvC3k2SPPFC2PSA这些模块分别起什么作用?P3/8、P4/16、P5/32 代表什么?为什么最后 Detect 要同时接收 3 个不同尺度的特征图?YOLOv11n、YOLOv11s、YOLOv11m、YOLOv11l、YOLOv11x 的区别在哪里?

learnerYC的博客 1815

SAP MM委外加工保姆级教程:从BOM配置到MIGO发货的完整避坑指南

本文提供SAP MM模块中委外加工的完整操作指南,涵盖从BOM配置到MIGO发货的全流程。详细解析委外采购和工序委外两种模式,包括主数据配置、采购订单创建及物料移动等关键步骤,帮助用户规避常见错误,提升供应链管理效率。特别适合制造业企业实施SAP外包业务参考。

weixin_26905487的博客 528

21.手绘Spring IOC运行时序图

1.再谈IOC与 DI IOC(lnversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创 建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让 容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们所看到的配置文件。 DI(Dependency Injection)依赖注入:就是指对象是被动接受依赖类而不...

编程之心的博客 727

OpenClaw(原Clawdbot/Moltbot)本地部署快速指南

支持Telegram、Slack、Discord、iMessage等多平台接入,通过配置文件或环境变量填写对应平台的Token,配置后执行。支持对接OpenAI、Anthropic、阿里云百炼等云端模型,也可搭配Ollama使用本地模型。默认仅允许已配对用户交互,群聊场景建议开启Docker沙箱模式,在配置文件设置。执行后跟随指引确认安全说明,进入QuickStart模式,默认网关端口为。可查看已加载模型,通过绑定的通讯通道发送测试指令,响应正常即部署完成。,限制非主会话操作权限,提升安全性。

wukangjupingbb的博客 8479

Spring中IOC详解

一、IOC的原型 IOC ----控制反转 比如我们有一个功能是获取用户数据,我们使用Dao层实现这个功能,再在Service层调用这个功能。但是我们每增加一个接口,比如获取mysql中的数据,就要修改原来的代码,如果再增加一个新的接口,又需要去service实现类中修改对应的实现。 解决方法 用户实际调用的是业务层,dao层他们不需要接触 UserServiceImpl userService = new UserServiceImpl(); userSe

qq_41359998的博客 1万+

LinuxMint 22.1(Ubuntu24.04)下通过Wine完美运行同花顺远航版的实战指南

本文详细介绍了在LinuxMint 22.1(Ubuntu24.04)系统下通过Wine完美运行同花顺远航版的实战指南。从基础环境准备到深度优化,包括Wine环境配置、同花顺远航版安装、字体显示调优、任务栏兼容性修复等关键步骤,帮助Linux用户高效使用同花顺远航版进行股票交易和行情分析。

weixin_30919429的博客 571

基于DRU-HVDC的构网型海上风电场环流机理仿真复现

本文介绍了基于DRU-HVDC的构网型海上风电场环流机理仿真模型的构建方法。主要内容包括: 完整的Simulink模型结构,包含主模型文件GFM_DRU_Main.slx和配置脚本GFM_DRU_Setup.m 系统参数设置,包括基础频率(20Hz)、电压基准值(690V)、功率基准值(2MVA)等 四种仿真场景配置:电压不平衡、相位不平衡、阻抗不平衡和频率不平衡 风力发电机(WT)子系统的详细构建步骤,包含电压源、输出阻抗和测量模块 变压器和DRU整流器的参数设置 该模型可用于研究构网型风电场的环流机理。

huanghm88的专栏 262

SpringIOC机制详解

所谓Bean的作用域其实就是指Spring给我们创建出的对象的存活范围,在配置文件中通过bean的scope属性指定取值范围说明singleton默认值,单例的prototype多例的requestWEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中sessionWEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中。

互联网底层民工的博客 9561

OpenClaw 2026 路线图详解:3 大协作能力升级与社区贡献增长 62% 的实证分析

介绍 OpenClaw 2026 如何通过上下文锚定(Context Anchoring)、协作质量定义和责任边界机制,将 AI 编程工具从单点补全升级为嵌入代码生命周期的协作对齐系统,并详解 `.openclaw/config.yaml` 中 `context_anchor` 配置的实操方法与效果

weixin_42545292的博客 384

SpringCloud

SpringCloud1.什么是微服务?2.微服务架构的优点?3.微服务架构的缺点?4.SpringCloud和SpringBoot的关系?5.SpringCloud和Dubbo的区别? 1.什么是微服务? 微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个服务,彻底的解耦,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程的概念,能...................................................

weixin_43766298的博客 356

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Spring IoC详解

Spring 是一个开源的Java框架,它提供了丰富的功能和组件,用于简化企业级应用程序的开发。Spring 框架提供了依赖注入、面向切面编程、事务管理、数据访问等功能,是一个全面的企业应用开发解决方案。Spring MVC 是 Spring 框架中的一个模块,即Spring功能的一部分,用于构建 Web 应用程序的 MVC(Model-View-Controller)架构。Spring MVC 提供了基于注解的方式来定义控制器、处理请求和渲染视图,使得开发 Web 应用程序更加简单和灵活。

2303_78892316的博客 5008

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring中的IOC详解

单例Bean和多实例Bean的生命周期主要区别在于实例化和销毁的管理方式,单例Bean在容器启动时创建一个实例,并由容器负责管理其生命周期的完整过程。在Spring框架中,Bean是应用程序的核心组件,它们由Spring容器创建、组装和管理,以帮助开发者实现松耦合、可测试和可维护的代码。IOC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。Bean的自动装配是Spring框架提供的一种便捷的方式,用于自动解析和设置Bean之间的依赖关系,而无需显式配置每一个依赖关系的方式。

努力分享一些干货 8635

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring IOC详细介绍

Spring IOC 1. 主要内容 2. Spring 框架 2.1. Spring 框架概念   Spring 是众多开源java项⽬中的⼀员,基于分层的javaEE应⽤⼀站式轻量级开源框架,主要核⼼是IOC(控制反转/依赖注⼊)与 AOP(⾯向切⾯)两⼤技术,实现项⽬在开发过程中的轻松解耦,提⾼项⽬的开发效率。   在项⽬中引⼊Spring⽴即可以带来下⾯的好处 降低组件之间的耦合度,实现软件各层之间的解耦。 可以使⽤容器提供的众多服务,如:事务管理服务、消息服务等等。 当我们使⽤容器管理事务时,

weixin_44454512的博客 2304

Spring IOC超详解

Spring IOC 应⽤ 1.Spring IoC基础 1.1BeanFactory与ApplicationContext区别 BeanFactory是Spring框架中IoC容器的顶层接⼝,它只是⽤来定义⼀些基础功能,定义⼀些基础规范,⽽ApplicationContext是它的⼀个⼦接⼝,所以ApplicationContext是具备BeanFactory提供的全部功能的。 通常,我们称BeanFactory为SpringIOC的基础容器,ApplicationContext是容器的⾼级接⼝,⽐.

qq_39182939的博客 3078

Spring源码学习

spring源码学习

qq_33816292的博客 287

一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程)

前言 1、博客内容均出自于咕泡学院架构师第三期 2、本章内容共分为三部分 第一部分:一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 第二部分:一步一步手绘Spring IOC运行时序图二(基于XML的IOC容器初始化) 第三部分:一步一步手绘Spring IOC运行时序图三(基于Annotation的IOC容器初始化) 1、Spring 核心之 IOC 容器初体验 IOC 与 DI IOC(Inversion of Control )控制反转:所谓控制反转,就是

Jarvis.y的博客 1369

SpringIOC初始化时序图

手绘SpringIOC时序图 通过绘制序图来一步步了解springIOC初始化的原理 总体来说,springIOC初始化可以分为三个模块------定位、加载和注册 再细分下去17个小模块 1.寻找入口——>2.获取配置文件路径——>3.容器开始启动——>4.开始解析配置文件路径——>5.载入配置路径——>6.分配路径处理策略——>7.解析配置...

qq_38762479的博客 1233

spring--绘制IoC时序图

一:什么是IoC IoC:Inversion of Control,控制反转的意思,获得依赖对象的过程由自身管理变为了由IOC容器主动注入,由容器来管理对象的生命周期。 二:时序图

qq47653423的博客 561

一条线总结Spring上下文refresh中原生接口调用顺序

Spring,上下文刷新流程

weixin_44008360的博客 368

Spring1.0 AbstractApplicationContext refresh()时序图

websequence title Spring1.0 AbstractApplicationContext refresh()时序图 AbstractApplicationContext->+AbstractApplicationContext: refreshBeanFactory() AbstractApplicationContext->Abstract...

siege 462

spring 解析Bean的时序图,AbstractApplicationContext,refresh()源码分析

因为spring的refresh()很复杂,为了简化只体现自己注解。 @SpringBootApplication() @ComponentScan(includeFilters = @ComponentScan.Filter()) public class Application { public static void main(String[] args) { Spr...

jackson的博客 383

spring-bean 全生命周期时序图

先来一段简单的代码 //获取资源 ClassPathResource resource = new ClassPathResource("spring-core.xml"); //获取 BeanFactory DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); //根据新建的 BeanF

yzqingqing的博客 2469
上一篇: Java源码解析(附录)(3) —— GenericDeclaration
下一篇: DDD实战--Domain Primitive
forBurnInG
博客等级 码龄15年 50粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值