Spring IOC 容器的加载过程(bean 的创建过程)

Spring IOC 容器的加载过程(bean 的创建过程)

在这里插入图片描述

  1. 配置Bean
    通过xml或者是@Component @Bean 等进行配置

  2. 解析Bean,得到BeanDefinition定义对象
    通过 BeanDefintionReader 将 bean 进行解析,准备要创建的bean对象的定义对象BeanDefinition,存放到BeanDefintionMap 中,将beanName和bean值进行保存

  3. 实例化bean
    BeanFactory通过反射的方式j将BeanDefinition定义对象实例化成具体的bean对象
    注意:在这之前也可以进行beanFactoryPostProcessor(Bean的增强器)的处理,我们可以根据获取到的BeanDefinition 定义对象做特殊处理

  4. 初始化Bean
    (1)填充属性: 通过populateBean 填充属性
    (2)执行aware 接口所实现的方法:方便通过bean对象来获取容器中的属性值
    (3)调用BeanPostProcessor前置处理方法:AOP等都在这里实现
    (4)调用init-mehtod方法
    (5)调用BeanPostProcessor的后置处理方法

  5. 生成Bean
    通过getBean方法可以直接获取

  6. 销毁Bean
    spring 自己处理

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ATA-2048高压放大器在医疗中的作用是什么

高压放大器在医疗设备和医学应用中发挥着至关重要的作用。它们是一种专用的电子设备,用于放大医学图像和信号,以便医生能够更准确地诊断和治疗病患。下面西安安泰将详细介绍高压放大器的作用、原理和应用领域。 高压放大器是专门设计用于处理医学图像和信…

CrossOver虚拟机软件2024中文版最新功能介绍

CrossOver是一款由CodeWeavers公司开发的,运行在Mac和Linux操作系统下,能够模拟Windows系统应用运行环境的软件。它不需要用户单独安装Windows操作系统,就能让Windows平台上的应用程序在Mac和Linux上顺畅运行。CrossOver在技术上使用了Wine&a…

【数据存储】TIDB和MySQL的区别

1.TIDB和MySQL对比 对比内容MySQLTiDB架构设计一个传统的单机数据库系统,采用主从复制和分区表等方式来实现水平扩展一个分布式的 NewSQL 数据库,采用分布式存储和分布式事务等技术,支持水平扩展和高可用性事务支持 InnoDB 存储引擎来支持事…

一篇文章给你讲清楚正常卷积与深度可分离卷积

文章目录 正常卷积深度可分离卷积深度卷积逐点卷积 对比代码实现查看(torch实现)结果 正常卷积 也就是我们平常用的比较普遍的卷积: 它的参数量是:112,即: ( 卷积核大小) ∗ 输入通道 ∗ 输出…

【JavaEE】_Spring MVC项目获取URL中的参数

目录 1. 单参数 2. 多参数 1. 单参数 .java文件如下: package com.example.demo.controller;import com.example.demo.Person; import org.springframework.web.bind.annotation.*;import java.util.Arrays; import java.util.List;RequestMapping("/Para&…

MFC 打开类向导中方法时提示对com组件的调用返回了错误 HRESULT E_FAIL

解决:头文件中要分类,把virtual和afx_msg等放在一起,不要交叉错开。 MFC(Microsoft Foundation Class)中的virtual关键字用于声明虚函数。虚函数是C中实现多态的一种机制,它允许派生类重新定义基类中的虚函…

FreeRtos学习笔记(12)systemView 分析任务调度情况

FreeRtos学习笔记(12)systemView 分析任务调度情况 使用stm32f429 freertosV10.5.1 systemView 3.5 keil AC5 systemView 移植 从官网下载 systemView 软件 将下面文件添加到工程中 freertos 修改 systemView 需要 FreeRTOSConfig.h 开启如下宏, …

UE小:CesiumForUnreal使用教程

联网模式(需要翻墙) 直接打开工程并点击Cesium插件图标然后点击connect to Cesium ion进行账号注册即可使用 见到如界面后点击Allow并返回UE编辑器(如果无法打开认证界面请先访问https://ion.cesium.com/并且不要关闭,再次点击co…

Fendi Club啤酒:畅享时尚的味蕾之旅

在这个追求个性与品味的时代,Fendi Club啤酒以其时尚的魅力,领着时尚潮流与味蕾的完善结合。它不仅是一款啤酒,更是一种生活态度的象征,让我们一起踏上这场畅享时尚的味蕾之旅。 Fendi Club啤酒的特别之处在于它对品质的别致追求。…

SQL映射文件

一、SQL映射的xml文件 1.1 mapper元素 二、select 三、别名与Java映射 四、resultMap 啊

专题一_双指针(2)

目录 LCR 179. 查找总价格为目标值的两个商品 解析 题解 15. 三数之和 解析 题解 18. 四数之和 解析 题解 LCR 179. 查找总价格为目标值的两个商品 LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode) 解析 题解 class Solution { publi…

软件架构复用相关知识总结

一、软件产品线 软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需求,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理、复用、集成新的系统。采用产品线能够提…

前端学习-HTML基础

一、简介 1.介绍 网页就是html文件,前端编写代码->浏览器解析代码->呈现网页 谷歌浏览器Blink内核最好 2.Web标准 让网页设计排版更统一规范 结构:对网页元素进行整理和分类,html 表现:设置网页元素的板式、颜色、大小等外…

工作中总结的30个常用Linux指令,实在记不住就别硬记了,看这篇就够了

写在开头 最近发现自己记忆力严重下滑,很多sql命令,linux命令都记不住,特别是linux命令,很多命令参数很多,一段时间不用,再去使用就需要从网上重查了,很烦人,为此花了一些时间把之前…

初始化hive数据库问题记录

1、问题复现:完成了初始化hive数据库后没有看到生成的表格 2、检查后发现是NaviCat连接时主机号写错了,写成了localhost,这里修改为node01的主机号 3、修改后再次刷新就看到之前初始化后自动生成好的数据库表格了

C++之模板和可变模板参数

目录 一、为什么要定义模板 模板的优点: 二、模板的定义 三、模板的类型 3.1、函数模板 3.1.1、实例化:隐式实例化与显示实例化 3.1.2、函数模板、普通函数间的关系 3.1.2.1易错点: 3.1.2.2重载例子: 3.1.2.3优先级与执行顺序: 3.1.3、模板头文件与实现文…

vue3+threejs新手从零开发卡牌游戏(十四):调整卡组位置,添加玩家生命值HP和法力值Mana信息

由于之前的卡组位置占了玩家信息的位置,所以这里将它调整到site区域: 修改game/site/p1.vue,在site右下角添加一个卡组区域: // 初始化己方战域 const init () > {let sitePlane scene.getObjectByName("己方战域Plan…

【工具-MobaXterm】

MobaXterm ■ MobaXterm简介■ MobaXterm下载安装■ MobaXterm主要功能■ 创建SSH session■ 创建串口session■ 远程文件传输和下载■ 运行图形应用程序■ Unix 命令集(GNU/ Cygwin)工具箱功能 ■ MobaXterm配置■ 设置黑色主题■ 设置终端字体■ 右键粘贴■ 右键复制■ 文件保…

【干货】Apache DolphinScheduler2.0升级3.0版本方案

升级背景 因项目需要使用数据质量模块功能,可以为数仓提供良好的数据质量监控功能。故要对已有2.0版本升级到3.0版本以上,此次选择测试了3.0.1 和 3.1.1 两个版本,对进行同数据等任务调度暂停等操作测试,最后选择3.0.1 版本 原因…

【每日力扣】70. 爬楼梯与746. 使用最小花费爬楼梯

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害。 70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢…