spring循环依赖二级缓存,spring一级缓存能解决循环依赖吗

  spring循环依赖二级缓存,spring一级缓存能解决循环依赖吗

  一级缓存存储实例化的对象。二级缓存存储已经在内存空间中创建的对象,但是属性还没有被分配。三级缓存存储对象工厂,用于创建预先暴露给bean的对象。

  @ service public class test service 1 { @ auto wired private test service 2 test service 2;public void test1(){ } } @ service public class test service 2 { @ Autowired private test service 1 test service 1;public void test2() { }}

  TestService1先去一级缓存看看有没有实例。如果没有实例,继续检查二级缓存。如果没有实例,请检查三级缓存。没有实例时,创建实例。在创建的过程中,提前暴露它们,并添加到三级缓存中。

  这时进行属性赋值,发现还有一个testService2,没有赋值,为空。于是,我去一级缓存看有没有testSerivce2的实例,发现没有实例。我去二级缓存看有没有,如果没有实例,我就创建一个实例,提前曝光,添加到三级缓存。

  此时在testSerivce2对象中发现testService1中没有赋值,然后将其赋值给testService1。如果一级缓存中没有赋值,则转到二级缓存,转到三级缓存,将三级缓存中的实例testService1添加到二级缓存中。删除实例testService1的三级缓存实例。此时testService2中有实例对象,对象中的testService1也有值,是可用的实例对象。只需将这个对象移动到一级缓存中,删除三级缓存中的testService2即可。

  此时testService1中的testService2属性可以从一级缓存中获取testService2实例,用赋值填充,testService1被实例化,这样就把testService1从二级缓存移到了一级缓存中,并删除了二级缓存中testService1的实例。

  关于在Spring中使用三级缓存解决循环依赖的过程,本文到此结束。关于Spring中三级缓存解决循环依赖的更多信息,请搜索之前关于流行IT的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • spring编程式事务处理,spring编程事务
  • spring编程式事务处理,spring编程事务,详解Spring学习之编程式事务管理
  • spring的核心功能模块有几个,列举一些重要的spring模块
  • spring的核心功能模块有几个,列举一些重要的spring模块,七个Spring核心模块详解
  • spring注解和springmvc的注解,SpringMVC常用注解
  • spring注解和springmvc的注解,SpringMVC常用注解,详解springmvc常用5种注解
  • spring实现ioc的四种方法,spring的ioc的三种实现方式
  • spring实现ioc的四种方法,spring的ioc的三种实现方式,简单实现Spring的IOC原理详解
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况,Spring事务失效问题分析及解决方案
  • spring5.0新特性,spring4新特性
  • spring5.0新特性,spring4新特性,spring5新特性全面介绍
  • spring ioc以及aop原理,springmvc aop原理
  • spring ioc以及aop原理,springmvc aop原理,深入浅析Spring 的aop实现原理
  • Spring cloud网关,spring cloud zuul作用
  • 留言与评论(共有 条评论)
       
    验证码: