Bean三级缓存

2023-05-16

一、核心步骤

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

提前引用进行动态代理

在这里插入图片描述

后置处理器进行动态代理

在这里插入图片描述

二、具体步骤

1.获取bean

  1. AbstractBeanFactory#doGetBean
    在这里插入图片描述

2.第一次去单例池查询bean

  1. 最终调用:DefaultSingletonBeanRegistry#getSingleton(java.lan
    g.String, boolean)
    在这里插入图片描述

3.获取不到bean 创建Bean

AbstractAutowireCapableBeanFactory#createBean)
在这里插入图片描述

4.创建bean实例

AbstractAutowireCapableBeanFactory#createBeanInstance
在这里插入图片描述

5. 填充属性:

AbstractAutowireCapableBeanFactory#populateBean
1.准备填充、2.解决自动填充、3.填充属性
在这里插入图片描述

6.初始化

AbstractAutowireCapableBeanFactory#initializeBean(.String, Object,RootBeanDefinition)
在这里插入图片描述

6.1 初始化步骤

在这里插入图片描述

7 aop处理

后置处理(触发动态代理)
AbstractAutowireCapableBeanFactory#applyBeanPostProcessorsAfterInitialization
在这里插入图片描述

创建动态代理AbstractAutoProxyCreator#postProcessAfterInitialization
在这里插入图片描述

进行创建动态代理:AbstractAutoProxyCreator#createProxy
在这里插入图片描述

三、整体运行栈

#获取Bean
AbstractBeanFactory.doGetBean
#第一次查询
DefaultSingletonBeanRegistry.getSingleton()


#二、创建
#开始创建
AbstractAutowireCapableBeanFactory.doCreateBean
#创建实例
createBeanInstance()
#填充属性1.填充准备、2解决自动填充3、填充属性
populateBean
#初始化
initializeBean
		#填充 beanName
		invokeAwareMethods
		#前置处理
		applyBeanPostProcessorsBeforeInitialization
		#初始化方法
		invokeInitMethods
		#后置处理(AOP动态代理)
		applyBeanPostProcessorsAfterInitialization

#三、AOP处理
#后置处理触发动态代理
AbstractAutowireCapableBeanFactory#applyBeanPostProcessorsAfterInitialization
#创建动态代理
AbstractAutoProxyCreator#createProxy


# 四、解决循环依赖,提前引用
#提前引用
getEarlyBeanReference()
	#创建代理
	createProxy()



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bean三级缓存 的相关文章

  • IDEA报错之Failed to start bean ‘documentationPluginsBootstrapper‘问题及解决方案

    笔者今日创建一个Spring Boot 项目准备做产品 基于IDEA搭建是非常容易的 但是万万没想到 居然一切顺理成章的创建之后 运行报错 非常痛惜 错误截图如下 核心错误 Failed to start bean documentatio
  • 报错:Description: No bean of type ‘org.apache.shiro.realm.Realm‘ found

    springboot整合shiro的时候出现了报错 报错信息 xff1a Description No bean of type 39 org apache shiro realm Realm 39 found Action Please
  • 3.6 条件装配Bean

    Bean初始化前 xff0c 对某些属性进行校验 xff0c 满足校验才去装配数据源 为了处理这样的场景 xff0c 需要用到 64 Conditional注解 xff0c 同时需要配合另外一个接口Condition xff08 org s
  • 解决Error creating bean with name ‘templateEngine‘ defined in class path resource

    今天写一个spring boot项目时出现这个错误 原因也是比较简单 xff0c 那就是版本冲突了 xff0c 导致这个包不能用了 解决方法 xff1a 把你自己定义的版本删掉 xff0c 用spring boot自带的 xff0c 因为出
  • 无状态会话bean(1)---定义

    无状态会话bean 用于完成在单个方法的生命周期内的操作 无状态bean 可以实现许多业务操作 xff0c 但是每个方法都不能假定任何其他的方法会在它之前调用 后半句的意思是现在的你可能不是刚才的你 xff0c 明天的你可也能不是今天的你
  • UnsatisfiedDependencyException: Error creating bean with name ‘subjectServiceImpl‘: Unsatisfied depe

    背景 看xml所在的路径不舒服 任性改资源路径 以为idea会帮我更新引用就以身试险了哈哈哈 报错信息是bean出现了创建错误 查了网上大部分的博客 一一排除后还是报错 网上大部分建议总结如下 1 先去排查service实现层有没有添加注解
  • SpringBoot中有几种定义Bean的方式?

    目录 1 64 Bean2 64 Component3 64 Controller 64 RestController 64 Service 64 Repository4 64 ControllerAdvice 64 RestControl
  • Error creating bean with name 'userController'

    Caused by org springframework beans factory UnsatisfiedDependencyException Error creating bean with name 39 userControll
  • springmvc + freemarker +sitemesh

    这 都加起来 很难 网上没有解决方案 用了一天才把环境搭起来 记录如下 先把springmvc 在 web xml上的配置
  • Spring2.0中新的Bean类型实现原理

    我们知道 在Spring2 0中 除了singleton及prototype两种类型的Bean以外 默认情况下还增加了request session及global session三种类型的Bean 增加的三种类型的Bean主要应用于Web应
  • Bean销毁之前的行为

    与上一篇中的定制初始化行为相似 Spring也提供了两种方法定制Bean销毁之前的特定行为 如下 1 使用destroy method属性 2 实现DisposableBean接口 该接口中提供了一个方法 void destroy thro
  • Spring框架自学之路——简易入门

    目录 目录 介绍 Spring中的IoC操作 IoC入门案例 Spring的bean管理 配置文件 Bean实例化的方式 Bean标签的常用属性 属性注入 使用有参构造函数注入属性 使用set方法注入属性 注入对象类型属性 p名称空间注入属
  • 学习Spring

    1 如何学习Spring 你可以通过下列途径学习spring 1 spring下载包中doc目录下的MVC step by step和sample目录下的例子都是比较好的spring开发的例子 2 AppFuse集成了目前最流行的几个开源轻
  • Educoder-Spring入门解答

    第一关 hello Spring HelloWorld package step1 public class HelloWorld Begin public void hello System out println Hello Sprin
  • [Spring学习]04 Spring IOC创建Bean的几种方式

    目录 一 调用构造器创建Bean对象 二 调用静态工厂方法创建Bean对象 三 调用实例 动态 工厂方法创建Bean对象 一 调用构造器创建Bean对象 通过调用构造器创建Bean对象是我们在实际开发中最常用的方式 而构造器创建Bean对象
  • createBean方法详解

    前言 createBean是创建Bean的主要方法 该方法位于 AbstractBeanFactory的doGetBean方法中的createBean调用 createBean方法流程图 createBean源码解析 protected O
  • org.springframework.beans.factory.BeanCreationException的问题所在!!

    今天一不小心弄出的小问题 严重 Exception sending context initialized event to listener instance of class org springframework web contex
  • Spring Bean基础

    Spring Bean基础 1 1 定义Spring Bean 1 1 1 什么是BeanDefinition 1 2 通过BeanDefinition构建Bean 1 3 注册Bean BeanDefinition 注册 1 4 实例化S
  • XML转JavaBean的简单实现

    一个基于JSON的简单的XML转为Bean的方法 之前在做一个WEB SERVICE的交互的时候 写的一个基于JSON的XML转Bean的方法 就把它整理处理 如下 gt pom xml 所有需要的依赖包如下
  • spring3.0.3+hibernate3.5.4+JOTM2.2.1实现JTA事务管理

    本文参考资料 http java e800 com cn articles 2007 417 1176746498587392322 1 html 实验方法 本文设置两个entity Topic对应test1数据库 Post对应test2数

随机推荐

  • 在C++中使用map来取代很多个if else和switch

    在C 43 43 中使用map来取代很多个if else和switch 利用map中的key和value键值对来取代if else效率会好不少 span class token macro property span class token
  • C++类:类中的静态属性和函数、常量函数与常对象、类在内存中的存储

    静态属性 静态成员包括静态成员属性 静态成员函数 一个属性一旦设置为静态 xff0c 那么整个程序中就独其一份 如上所示 xff0c 之前p m A的值是100 使用p2 m A更改了该值为200后 xff0c 即使再用p m A去调用 x
  • ADRC学习心得(持续更新)

    两年前第一次接触到PID觉得很高深 xff0c 很神奇 xff1b 后来逐渐觉得单纯的PID小儿科了 xff0c 又了解到专家PID xff0c 模糊PID xff0c 神经网络PID这些改进算法 xff0c 再后来又知道了ADRC xff
  • 四/六旋翼迷你无人机设计制造(一)硬件设计制作

    四旋翼 xff0c 小飞机 飞到东 xff0c 飞到西 上日天 xff0c 下怼地 我的飞机真神奇 鲁迅 很早就有弄个小飞机自己玩的想法了 xff0c 因为疫情拖到现在 不过感谢时间 xff0c 过滤掉了很多不成熟的想法 xff0c 也有足
  • SLAM14讲第七讲习题10:Ceres实现ICP优化

    很好的学习ceres的习题 难度很低 容易入手 ceres结构体构造 struct ICPCeres 64 brief Construct a new ICPCeres object 64 param uvw 当前帧3d点 64 param
  • ZED2i相机在ROS2上运行vins排坑与用docker运行Kalibr标定ZED2i相机

    按照ZED官网提供的方式ZED2i的SDK和ros2 wrapper之后 还有很多工作要做才能让ZED成功运行稳定的VINS 1 ZED2i用Kalibr标定IMU和相机 由于我的电脑怎么装Kalibr都装不上 说是啥boost这个库版本不
  • 解决MobaXterm无法连接虚拟机问题总结

    一 说明 ubuntu拒绝root ssh远程登录通常情况是ssh设置了禁止root远程登录 xff0c 解决办法就是 xff1a 修改ssh配置 xff0c 然后重启ssh服务即可 二 检查是否安装ssh远程登陆模块 命令 xff1a s
  • 安装spinningup填坑ERROR: Could not build wheels for mpi4py which use PEP 517

    深度强化学习教程 xff1a Spinning Up项目中文版 Spinning Up 文档 ERROR Failed building wheel for mpi4py Failed to build mpi4py ERROR Could
  • MarkDown插入图片调整大小

    一定要注意修改格式的时候要加空格 xff0c 例如 Alt https avatar csdn net 7 7 B 1 ralf hx163com jpg 61 100x jpg和 61 之间的空格不能没有 具体参照 xff1a https
  • Linux初学记录

    编写一个名为iffile程序 xff0c 它执行时判断 bin目录下date文件是否存在 xff1f bin bash fname 61 bin date if test f fname then echo exist fi 123456
  • tensorflow的奇妙下划线,形如(_,变量)变量命名操作的解释

    问题的发现 今天在尝试实现 深度学习之TensorFlow入门 原理与进阶实战 的时候书写了一段代码 xff0c 其中有一行代码我甚是纠结了半天 xff0c 代码如下 xff1a span class token punctuation s
  • zynq实现视频动态字符叠加OSD,提供2套工程源码和技术支持

    目录 1 网上同行的OSD方案 太low 2 本方案OSD的优势3 HLS实现方案4 OSD延时和资源占用情况5 工程1 xff1a zynq7100实现字符叠加6 上板调试验证7 福利 xff1a 工程源码获取 1 网上同行的OSD方案
  • 向日葵连接已断开的解决办法

    方法一 打开ubuntu系统的终端 xff0c 依次输入如下命令 xff1a sudo apt get update sudo apt get upgrade sudo apt install lightdm 重启电脑 方法二 xff08
  • UDP传输图片(分包)

    前提 xff1a 需要了解QUdp的简单通信 xff0c 比如收发个字符串 QP ixmap图片类 xff0c 以此类来加载图片 Q B uffer和Q B yteArray来记录数据 memcpy函数的用法 分包概念 xff1a 举个例子
  • 结构型设计模式(七种)

    3 结构型设计模式 结构型模式描述如何将类或对象按某种布局组成更大的结构 它分为类结构型模式和对象结构型模式 xff0c 前者采用继承机制来组织接口和类 xff0c 后者采用组合或聚合组合对象 由于组合关系或聚合关系比较继承关系耦合度低 x
  • IDEA+Log4j2 设置控制台打印彩色日志

    在Log4j 2 10以前的版本 xff0c pattern中配置 highlight属性是可以正常打印彩色日志的 例如 xff1a pattern 34 d yyyy MM dd HH mm ss SSS highlight 5level
  • weex打包安卓艰苦之路

    weex打包安卓 一 配置安卓环境 下载安卓SDK配置ANDROID HOME配置 ANDROID HOME tools android h 检查是否配置成功 二 weex的安装使用 一 weex简介以及开发前提 1 简介 官网的解释为We
  • docker命令

    Docker命令详解 语法 docker run OPTIONS IMAGE COMMAND ARG Usage Run a command in a new container 中文意思为 xff1a 通过run命令创建一个新的容器 xf
  • PX4 mixer load

    mixer load dev pwm output0 fs microsd mixer ttt mix 启动一个自定义的mixer 系统默认从 etc mixers加载mixer 如果在 fs microsd etc mixers有相同名称
  • Bean三级缓存

    一 核心步骤 提前引用进行动态代理 后置处理器进行动态代理 二 具体步骤 1 获取bean AbstractBeanFactory doGetBean 2 第一次去单例池查询bean 最终调用 xff1a DefaultSingletonB