您的位置 首页 java

Spring-让你彻底搞懂Spring如何解决循环依赖?

一、 Spring 容器启动流程

创建配置类

 @ComponentScan(value = {"com.woniu"})
@Configuration
public class MyConfig {
}
复制代码  

创建一个普通类

 package com.woniu.service;
import org.springframework.stereotype.Component;
@Component
public class Eservice {
}
复制代码  

创建一个启动类

 public class Application {
    public  static   void  main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
    }
}
复制代码  

在启动类的第三行打断点开始单步调试,进入spring的容器启动流程

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

这个方法非常重要,在循环依赖中对于同一个 bean 会多次调用,先从一级缓存中查询是否存在bean,若不存在,再从二级缓存中查询是否存在bean,如果还是没有找到,从三级缓存中查询singletonFactory,如果没有,则直接返回,若在三级缓存中找到singletonFactory,则调用工厂中的方法创建bean,然后在把bean添加到二级缓存中

Spring-让你彻底搞懂Spring如何解决循环依赖?

什么是三级缓存

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

Spring-让你彻底搞懂Spring如何解决循环依赖?

文章来源:智云一二三科技

文章标题:Spring-让你彻底搞懂Spring如何解决循环依赖?

文章地址:https://www.zhihuclub.com/177103.shtml

关于作者: 智云科技

热门文章

网站地图