首页 > 其他分享 >Spring初始化之循环依赖

Spring初始化之循环依赖

时间:2024-06-16 14:43:35浏览次数:16  
标签:初始化 依赖 Spring 调用 解析 循环

InjectionMetadata.inject

resolveFieldValue解析去解析 对象的属性时

会自动去解析该属性是否是Bean依赖对象

DefaultListableBeanFactory.doResolveDependency会去调用DependencyDescriptor.resolveCandidate方法

而DependencyDescriptor.resolveCandidate方法就是回去调用BeanFactory.getBean方法

最终还是会调用AbstractBeanFactory.doGetBean方法,再回到AbstractAutowireCapableBeaFactory.doCreateBean,进行循环依赖注入。

循环依赖出现的问题
Spring通过三级缓存思想,对循环依赖出现的问题进行规避,到出现循环依赖问题时,提前中断初始化。

标签:初始化,依赖,Spring,调用,解析,循环
From: https://www.cnblogs.com/velloLei/p/18250610

相关文章

  • Spring中Bean的实例化过程
    AbstractAutowireCapableBeanFactory.doCreateBean方法一、调用createBeanInstance方法中会获取容器中所有的BeanPostProcessor对象,并进行循环筛选出来自于SmartInstantiationAwareBeanPostProcessor接口的实现类,并调用实现类的determineCandidateConstructors方法获取到有@......
  • Spring中Bean的初始化创建AbastractApplicationContext.FinishBeanFactoryInitializat
    AbastractApplicationContext.FinishBeanFactoryInitialization模版调用子类DefaultListableBeanFacotry.preInstantiateSingletons通过循环子类DefaultListableBeanFactory中收集到的所有beanDefinitionNames,对满足条件的Bean进行初始化,getBean操作会调用父类AbstractBean......
  • Springboot计算机毕业设计远程在线诊疗系统小程序【附源码】开题+论文+mysql+程序+部
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,远程医疗作为一种新兴的医疗模式,正逐渐受到广泛关注和认可。特别是在疫情等突发公共卫生事件的影响下,远程在线诊疗系统小程序......
  • Springboot计算机毕业设计远景民宿酒店预订小程序【附源码】开题+论文+mysql+程序+部
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的快速发展和消费者对旅游体验要求的提升,民宿作为一种独特的住宿方式,越来越受到游客的青睐。然而,传统的民宿预订方式存在着信息不对称、预......
  • Spring的事务步骤
    一、事务处理方案:Spring框架中提供的事务处理方案:一共有两种: 1.适合中小项目使用的,注解方案:        注解的方式做事务用起来简单,灵活,方便,中小型项目中用它比较方便,因为只需要@Transactional注解就OK了;这种方式用的就是spring框架自己提供的事务的处理机制,@Transac......
  • 基于SpringBoot+Spark搭建本地计算引擎服务
    1.项目背景 上一篇文章我们讲解了搭建数据挖掘可视化系统(大数据数据挖掘系统可视化设计艺术-CSDN博客)的主要内容,通过构建算子工作流可以完成数据挖掘的工作。这时这里的算子可以提交到本地计算请求,也可以提交大数据集群做计算,本文将详细介绍搭建本地计算请求的过程。2.......
  • [面试题]Spring MVC
    考虑到SpringMVC和Rest关系比较大,所以本文一共分成两大块:SpringMVCRESTSpringMVCSpringMVC框架有什么用?SpringWebMVC框架提供”模型-视图-控制器”(Model-View-Controller)架构和随时可用的组件,用于开发灵活且松散耦合的Web应用程序。MVC模式有助......
  • SpringAI快速上手
    一、导入依赖 镜像(导入maven依赖)<repositories><repository><id>spring-snapshots</id><name>SpringSnapshots</name><url>https://repo.spring.io/snapshot</url><releases>......
  • Java毕业设计-基于springboot开发的图书个性化推荐系统设计与实现-毕业论文(附毕设源代
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、前台首页功能模块2、管理员功能模块3、学生功能模块四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的图书个性化推荐系统......
  • Java毕业设计-基于springboot开发的图书管理系统-毕业论文(附毕设源代码)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、个人中心2、管理员管理3、用户管理4、图书出版社管理5、公告类型管理6、所在书架管理7、图书类型管理8、论坛管理9、公告信息管理10、图书信息......