Spring面试题24:Spring中什么是循环依赖?Spring是怎么解决循环依赖的?Spring 解决的是哪种情况的循环依赖?能不能通过一级或二级缓存解决循环依赖?

Spring面试题24:Spring中什么是循环依赖?Spring是怎么解决循环依赖的?Spring 解决的是哪种情况的循环依赖?能不能通过一级或二级缓存解决循环依赖?_第1张图片

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点

面试官:Spring中什么是循环依赖?

在Spring中,循环依赖指的是两个或多个Bean相互依赖的情况。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A,这就形成了一个依赖关系的循环,称为循环依赖。

循环依赖在实际业务中可能会出现,但是如果没有良好的处理机制,它可能会导致系统无法正常工作。因为在创建Bean A的过程中需要先创建Bean B,而创建Bean B的过程中又需要先创建Bean A,这样就形成了无限循环,导致系统无法正常启动。

面试官:Spring是怎么解决循环依赖的?

关键点:Spring 使用了三级缓存和提前暴露未完成的 Bean 的机制来解决循环依赖问题。但是对于原型Bean或者通过构造器注入的循环依赖,Spring是无法解决的,开发者需要自行避免这种情况的出现。

Spring 主要通过以下三个步骤来解决循环依赖的问题:

  1. 分阶段创建 Bean:Spring 创建 Bean 的过程主要分为三个阶段:实例化(创建空的 Bean 对象)、属性填充(依赖注入)和初始化(执行相关操作,如初始化方法)

你可能感兴趣的:(面试这么回答,spring,java,后端)