spring bean的循环引用

2023-05-16

看过一次spring公开课,记录一下bean的循环引用问题。

问题:

public class IndexService{

  @Autowired

  IndexDao indexDao;

}

public class IndexDao{

  @Autowired

  IndexService indexService;

}

以上的实例中IndexService依赖IndexDao,IndexDao中依赖IndexService。

spring在bean的实例化过程:

  先去创建IndexDao bean,

1.创建IndexDao实例,此时还没有IndexDao bean产生。

2.去配置IndexDao对象的属性,这个属性就是IndexService,在这个配置的过程中会先把自己(IndexDao)对象放到singleFactory中;

3.然后去查找IndexService bean去填充,发现单例池(专门存放bean)中没有,然后去singleFactory中去找,还是没有。

4.创建IndexService实例,此时还没有IndexService bean。

5.去配置IndexService对象的属性,这个属性就是IndexDao,在这个配置的过程中会先把自己(IndexDao)对象放到singleFactory中;

6.然后去查找IndexDao bean去填充,发现单例池中没有,然后去singleFactory中去找,发现有了。

7.然后把属性填充到IndexService中。

8.经过4,5,6,7后已经有了IndexService,并且此时属性IndexDao有值了,然后通过步骤3再将这个IndexService注入到IndexDao

9.然后继续完成IndexDao 后续的bean的初始化。

转载于:https://www.cnblogs.com/yongan/p/11354705.html

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

spring bean的循环引用 的相关文章

随机推荐

  • solvepnp函数-世界坐标系

    一 二 世界坐标系是任意选定的 xff0c 可以任意事先定义 xff0c 然后给出每个特征点在世界坐标系下的三维坐标 xff0c 然后以一定顺序存储这些点 特征点的像素坐标 xff0c 一般是通过角点检测算法直接得到的 xff0c 角点检测
  • 【C++】STL-迭代器

    Iterator xff08 迭代器 xff09 模式又称游标 xff08 Cursor xff09 模式 xff0c 就是把不同集合类的访问逻辑抽象出来 xff0c 使得不用暴露集合内部的结构而达到循环遍历集合的效果 xff0c 而又不需
  • Windows11 + Linux子系统(ubuntu)体验(篇一)

    今年10月份微软发布了新一代的Windows系统 Windows11 xff0c 这距离上一代产品Windows10发布已经有6年之久 xff0c 打破了微软自Windows7之后每三年更新一代操作系统的传统 可以说这一代Win11是蓄势已
  • 喜获蚂蚁offer,定级p7,面经分享,万字长文带你走完面试全过程

    前言 在今天 xff0c 我收到了蚂蚁金服A级的实习录用offer 从开始面试到拿到口头offer xff08 四面技术 43 一面HR xff09 战线大约拉了半个月 xff0c 从拿到口头offer到收到正式录用邮件大概又是半个月 思前
  • C++中 #define的用法

    C 43 43 中 define的用法 转自 xff1a http www dingge com main article asp id 61 10 今天整理了一些 define的用法 xff0c 与大家共享 xff01 1 简单的defi
  • LeetCode的语言使用

    看来以后不能再用python来写算法的题目了 用python竟然是一种取巧的办法 xff0c 以后还是用C 43 43 来写吧 python里面有很多内置的库 xff0c 这也就导致掩盖了很多复杂的算法的特性 虽然在写代码的时候很简单 xf
  • Windows10安装Ubuntu16.04

    由于最近要在Ubuntu上面开发 xff0c 得安装一个Ubuntu的系统 xff0c 这些是很常见的安装 xff0c 但是也踩了一些坑 xff0c 下面记录下来 安装环境 Windows10Ubuntu16 04 基础理论 在安装的时候有
  • python 下划线 _ __ 开头的变量 详解

    在python中 xff0c 我们经常能看到很多变量名以 下划线开头 xff0c 而且下划线的数量还不一样 xff0c 那么这些变量的作用到底是什么 xff1f 变量名分类 xff1a 以数字 字母开头 xff1a 正常的公有变量名 a 6
  • 两个画图工具助力论文绘图

    欢迎关注笔者的微信公众号 如果使用matplotlib绘制论文图片时需要做非常多的设置 xff0c 字体 xff0c 大小 xff0c 间距 xff0c 多子图配置等 xff0c 而这些操作可以封装好从而简化用户工作量 Proplot对ma
  • 对自然数e的理解,推导(基础)

    对自然数e的理解 xff0c 推导 基础 在前面的博文 古典概型事件数计算 分房 xff0c 配对 xff0c 乱序 概统1 一文中 xff0c 已经写到了对e的理解 xff0c 在n把钥匙配n把锁的 乱序配对 问题中 xff0c 当n很大
  • 检验和算法

    1 CRC xff08 循环冗余码 校验和的算法为 xff1a 所有各字节的和模256的余 即各字节二进制算术和 xff0c 不计超过256的溢出值 xff08 即只取其和 的低8位数据 xff09 xff0c 然后用0x100减去这个算数
  • 我的四轴专用PID参数整定方法及原理---超长文慎入

    给四轴调了好久的PID xff0c 总算是调好了 xff0c 现分享 PID 参数整定的心得给大家 xff0c 还请大家喷的时候手下留情 首先说明一下 xff0c 这篇文章的主旨并不是直接教你怎么调 xff0c 而是告诉你这么调有什么道理
  • px4原生源码学习-(1)

    接触px4代码有几天了 xff0c 想把自己所学所想记录下来 px4就不过多介绍了 xff0c 算得上目前使用的最广泛的开源飞控了 为什么说 px4原生代码学习呢 xff0c 这还得追溯到被大疆干死的3DR xff0c 3DR想做消费级无人
  • px4原生源码学习-(2)--实时操作系统篇

    po上我使用到的硬件和开发环境 px4硬件 xff1a 某宝销量最高的pixhawk套件 xff08 主机 xff0c gps 43 指南针 xff0c 数传 xff0c pwm转pmm xff0c 安全开关 xff0c 蜂鸣器 xff0c
  • px4原生源码学习-(3)--Nuttx实时操作系统的使用

    po上我使用到的硬件和开发环境 px4硬件 xff1a 某宝销量最高的pixhawk套件 xff08 主机 xff0c gps 43 指南针 xff0c 数传 xff0c pwm转pmm xff0c 安全开关 xff0c 蜂鸣器 xff0c
  • 为单反拍摄照片批量加入地理位置信息(POS点)和EXIF信息

    很多航测朋友对于照片中没有POS点很是懊恼 xff0c 单反同飞控是分离的 xff0c 照片由单反生成 xff0c 而POS点的数据由飞控生成 对于后期数据处理相当不利 xff0c 尤其是目前对于倾斜摄影的朋友 xff0c 地理位置信息一定
  • 解决angular中的版本问题,Metadata version mismatch for module,found version 4, expected 3

    angular版本问题解决办法 xff1b 第一步 xff1a 查出错误模块的当前安装版本 以 ng bootstrap模块为例 npm list ng bootstrap 第二步 xff1a 查出所有版本号 npm view ng boo
  • python2.7爬取京东商品评论

    大神请绕路 xff0c 新手先别急着上车 我们先来了解一下京东商品评论的地址 xff0c 他们的客户评论看似是在商品页 xff08 item jd com xff09 xff0c 但实际上是在club jd com review 这个url
  • 进入docker容器的方法

    最近想着怎么进入到容器内部 xff0c 然后把里面的配置文件拷贝出来 xff0c 下面是一些操作记录 1 进入docker容器的方法 命令 xff1a docker exec it 容器id bin sh 进入容器后相当于进入了另外一个li
  • spring bean的循环引用

    看过一次spring公开课 xff0c 记录一下bean的循环引用问题 问题 public class IndexService 64 Autowired IndexDao indexDao public class IndexDao 64