当前位置: 首页 > news >正文

设计素材网站飘网站建设如何跑业务

设计素材网站飘,网站建设如何跑业务,wordpress的客户端,电子工程网站目录标题 什么是循环依赖循环依赖场景Java SE 演示Spring 容器演示三级缓存核心知识三级缓存四大方法三级缓存中的迁移 三级缓存源码分析源码思维导图 源码图例课前问题推荐阅读 循环依赖是什么#xff1f;循环依赖的场景有哪一些#xff1f;三级缓存分别是什么#xff1f;三… 目录标题 什么是循环依赖循环依赖场景Java SE 演示Spring 容器演示三级缓存核心知识三级缓存四大方法三级缓存中的迁移 三级缓存源码分析源码思维导图 源码图例课前问题推荐阅读 循环依赖是什么循环依赖的场景有哪一些三级缓存分别是什么三个Map有什么异同三级缓存是如何解决循环依赖的为什么要使用三级缓存为什么不可以用二级缓存为什么构造器循环依赖、原型Bean循环依赖无法用三级缓存解决看过 Spring源码吗一般我们说的 Spring容器是什么如何检测是否存在循环依赖实际开发中见过循环依赖的异常吗如果循环依赖的时候所有类又都需要 Spring AOP自动代理那Spring如何提前曝光曝光的是 原始bean 还是 代理后的bean https://docs.spring.io/spring-framework/reference/ 什么是循环依赖 多个Bean互相引用形成环路 循环依赖场景 原型Bean的循环依赖单例bean之构造注入的循环依赖单例bean之setter注入的循环依赖 前两者无法解决最后一种可以通过Spring提供的三级缓存来进行实现。 Java SE 演示 Component public class ServiceA {private ServiceB serviceB;public void setServiceB(ServiceB serviceB) {this.serviceB serviceB;System.out.println(A 里面设置了B);}// public ServiceA(ServiceB serviceB) {// this.serviceB serviceB;// } }Component public class ServiceB {private ServiceA serviceA;public void setServiceA(ServiceA serviceA) {this.serviceA serviceA;System.out.println(B 里面设置了A);}// public ServiceB(ServiceA serviceA) {// this.serviceA serviceA;// } }public class ClientDemo {public static void main(String[] args) {clientSet();// clientConstruct();}/*** setter注入*/private static void clientSet() {//创建serviceAServiceA serviceA new ServiceA();//创建serviceBServiceB serviceB new ServiceB();//将serviceA注入到serviceB中serviceB.setServiceA(serviceA);//将serviceB注入到serviceA中serviceA.setServiceB(serviceB);}/*** 构造注入*/private static void clientConstruct(){// new ServiceA(new ServiceB(new ServiceA(new ServiceB())));} } Spring 容器演示 !-- bean ida classcom.example.demo.circulardependency.spring.A scopesingleton--bean ida classcom.example.demo.circulardependency.spring.A scopeprototypeproperty nameb refb//bean!-- bean idb classcom.example.demo.circulardependency.spring.B scopesingleton--bean idb classcom.example.demo.circulardependency.spring.B scopeprototypeproperty namea refa//beanpublic class ClientSpringContainer {public static void main(String[] args) {sampleDemo();}/*** spring** 2024/2/2 11:40*/private static void sampleDemo() {/*** setter注入* * 11:39:14.055 [main] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Creating shared instance of singleton bean a* ---A created success* 11:39:14.064 [main] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Creating shared instance of singleton bean b* ---B created success*//*** 构造注入* * Exception in thread main org.springframework.beans.factory.BeanCreationException:**/ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);A a context.getBean(a, A.class);B b context.getBean(b, B.class);} } 三级缓存 Spring循环依赖 - CSDN博客 核心知识 三级缓存 一级缓存MapString, Object singletonObjects我愿称之为成品单例池常说的 Spring 容器就是指它我们获取单例 bean 就是在这里面获取的存放已经经历了完整生命周期的Bean对象二级缓存MapString, Object earlySingletonObjects存放早期暴露出来的Bean对象Bean的生命周期未结束属性还未填充完整可以认为是 半成品的 bean, 实例化但未初始化的Bean对象三级缓存MapString, ObiectFactory? singletonFactories存放可以生成Bean的工厂FactoryBean用于生产创建对象 /** Cache of singleton objects: bean name to bean instance. */ // 一级缓存singleton对象的缓存bean名称 - bean实例。 private final MapString, Object singletonObjects new ConcurrentHashMap(256);/** Cache of singleton factories: bean name to ObjectFactory. */ // 三级缓存单例工厂的缓存bean名称 - ObjectFactory private final MapString, ObjectFactory? singletonFactories new HashMap(16);/** Cache of early singleton objects: bean name to bean instance. */ // 二级缓存早期singleton对象的缓存bean名称 - bean实例。 private final MapString, Object earlySingletonObjects new HashMap(16);四大方法 getSingleton()从容器里面获得单例的bean没有的话则会创建 beandoCreateBean()执行创建 bean 的操作在 Spring 中以 do 开头的方法都是干实事的方法populateBean()创建完 bean 之后对 bean 的属性进行填充addSingleton()bean 初始化完成之后添加到单例容器池中下次执行 getSingleton() 方法时就能获取到 三级缓存中的迁移 A创建过程中需要B于是A将自己放到三级缓存里面去实例化BB实例化的时候发现需要A于是B先查一级缓存没有再查二级缓存还是没有再查三级缓存找到了A然后把三级缓存里面的这个A放到二级缓存里面并删除三级缓存里面的AB顺利初始化完毕将自己放到一级缓存里面此时B里面的A依然是创建中状态然后回来接着创建A此时B已经创建结束直接从一级缓存里面拿到B然后完成创建并将A自己放到一级缓存里面。 三级缓存源码分析 【Spring】三级缓存 源码思维导图 Spring三级缓存源代码执行图 源码图例 课前问题 还剩下三个 为什么不可以用二级缓存这部分我在网上搜寻了一下跟AOP的代理有关由于目前我对AOP不熟怕误导了大家就先欠着开发中解决循环依赖欠着循环依赖遇上AOP欠着 推荐阅读 Spring源码最难问题《当Spring AOP遇上循环依赖》_循环依赖aop在那个阶段-CSDN博客spring 循环依赖以及解决方案(吊打面试官)_循环依赖解决方案-CSDN博客spring循环依赖-CSDN博客
http://www.zqtcl.cn/news/607478/

相关文章:

  • 省级示范校建设网站网站制作企业有哪些公司
  • 单位做网站怎么做510企业网站系统源码
  • 福建人力资源建设网站未成年在线观看视频播放免费
  • 网站站内logo怎么做朋友圈广告30元 1000次
  • 绍兴做网站北京做公司网站
  • 青浦区网站建设公司商丘网站建设费用
  • 百度网站是怎么建设的wordpress媒体主题
  • 孝感网站建设xgsh国内比百度好的搜索引擎
  • 阅读网站怎样做网站右侧固定标题怎么做
  • 网站开发多少钱农民wordpress acf破解版
  • 厦门网站建设培训云南最便宜的网站建设
  • 吉安手机网站建设html网页布局
  • wordpress英文文章格式怎样给网站做优化
  • 新网站友链网店托管公司
  • 期末作业制作网站网站上传根目录
  • 新网站不被收录的原因兰州网络seo公司
  • 男生可以做网站编辑工作吗网站域名跟谁买
  • 我市精神文明建设的门户网站做网站需要写代码
  • 新网站推广网站搜索引擎优化的步骤
  • 网站建设20推广公司网站建设推广方案
  • 如何设计酒店网站建设好的交互网站
  • 怎么把自己的网站放到百度上九亭做网站
  • 张家界旅游网站建设网页设计作品欣赏分析
  • 订阅号自定义可以做链接网站不做网站dreamwa
  • 电子商务网站规划的原则做网站的集群方案
  • 山东建设银行怎么招聘网站自己做商城网站
  • 建设网站成本预算网站页面设计尺寸
  • 微官网和微网站首页房产网怎么查到房产
  • 高端服装产品网站建设织梦网站识别
  • 做调像什么网站找活注册网站请签署意见是写无