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

福建参观禁毒展览馆的网站建设seo搜索引擎优化技术

福建参观禁毒展览馆的网站建设,seo搜索引擎优化技术,电子商务网站建设的知识点,建设网站前言什么是循环依赖 ? 一个或多个对象之间存在直接或间接的依赖关系,这种依赖关系构成一个环形调用,有下面 3 种方式。 我们看一个简单的 Demo,对标“情况 2”。 Service public class Louzai1 {Autowiredprivate Louzai2 louzai2;…

在这里插入图片描述

什么是循环依赖 ?

一个或多个对象之间存在直接或间接的依赖关系,这种依赖关系构成一个环形调用,有下面 3 种方式。
在这里插入图片描述
我们看一个简单的 Demo,对标“情况 2”。

@Service
public class Louzai1 {@Autowiredprivate Louzai2 louzai2;public void test1() {}
}@Service
public class Louzai2 {@Autowiredprivate Louzai1 louzai1;public void test2() {}
}

这是一个经典的循环依赖,它能正常运行,后面我们会通过源码的角度,解读整体的执行流程。

三级缓存

解读源码流程之前,spring 内部的三级缓存逻辑必须了解,要不然后面看代码会蒙圈。

第一级缓存:singletonObjects,用于保存实例化、注入、初始化完成的 bean 实例;
第二级缓存:earlySingletonObjects,用于保存实例化完成的 bean 实例;
第三级缓存:singletonFactories,用于保存 bean 创建工厂,以便后面有机会创建代理对象。
这是最核心,我们直接上源码:
在这里插入图片描述
执行逻辑:

先从“第一级缓存”找对象,有就返回,没有就找“二级缓存”;
找“二级缓存”,有就返回,没有就找“三级缓存”;
找“三级缓存”,找到了,就获取对象,放到“二级缓存”,从“三级缓存”移除。

原理执行流程

我把“情况 2”执行的流程分解为下面 3 步,是不是和“套娃”很像 ?
在这里插入图片描述
整个执行逻辑如下:

1、在第一层中,先去获取 A 的 Bean,发现没有就准备去创建一个,然后将 A 的代理工厂放入“三级缓存”(这个 A 其实是一个半成品,还没有对里面的属性进行注入),但是 A 依赖 B 的创建,就必须先去创建 B;
2、在第二层中,准备创建 B,发现 B 又依赖 A,需要先去创建 A;
3、在第三层中,去创建 A,因为第一层已经创建了 A 的代理工厂,直接从“三级缓存”中拿到 A 的代理工厂,获取 A 的代理对象,放入“二级缓存”,并清除“三级缓存”;
4、回到第二层,现在有了 A 的代理对象,对 A 的依赖完美解决(这里的 A 仍然是个半成品),B 初始化成功;
5、回到第一层,现在 B 初始化成功,完成 A 对象的属性注入,然后再填充 A 的其它属性,以及 A 的其它步骤(包括 AOP),完成对 A 完整的初始化功能(这里的 A 才是完整的 Bean)。
6、将 A 放入“一级缓存”。

Spring Bean的生命周期

getBean(a)–>实例化A–>属性注入–>初始化A–>销毁

三级缓存的作用:

singletonObjects(一级缓存):存放实例化–>代理–>属性注入–>初始化后的对象
earlySingletonObjects(二级缓存):存放实例化–>代理–>属性注入后的对象
singletonFactories(三级缓存):存放对象工厂,可以从对象工厂中拿到还未属性注入的对象(对象工厂便于创建代理对象)
当未添加三级缓存时候:
在这里插入图片描述
当加入三级缓存后:
在这里插入图片描述


文章转载自:
http://pathography.c7625.cn
http://cookshack.c7625.cn
http://actinochitin.c7625.cn
http://autographically.c7625.cn
http://contranatant.c7625.cn
http://continuously.c7625.cn
http://poculiform.c7625.cn
http://cantankerous.c7625.cn
http://frontier.c7625.cn
http://biocycle.c7625.cn
http://transglobal.c7625.cn
http://eavesdropping.c7625.cn
http://bluster.c7625.cn
http://earwax.c7625.cn
http://neoantigen.c7625.cn
http://bespeak.c7625.cn
http://indelicacy.c7625.cn
http://obstacle.c7625.cn
http://bumpety.c7625.cn
http://appropriation.c7625.cn
http://calfbound.c7625.cn
http://careenage.c7625.cn
http://coeditor.c7625.cn
http://coalfish.c7625.cn
http://tenderloin.c7625.cn
http://prurigo.c7625.cn
http://mohair.c7625.cn
http://fast.c7625.cn
http://carburization.c7625.cn
http://hypoalonemia.c7625.cn
http://kale.c7625.cn
http://depth.c7625.cn
http://cubical.c7625.cn
http://louie.c7625.cn
http://millage.c7625.cn
http://breach.c7625.cn
http://thrustor.c7625.cn
http://indrawn.c7625.cn
http://cysticerci.c7625.cn
http://beanfeast.c7625.cn
http://coventrate.c7625.cn
http://kooky.c7625.cn
http://gannister.c7625.cn
http://bowwow.c7625.cn
http://chorist.c7625.cn
http://govern.c7625.cn
http://hellgrammite.c7625.cn
http://cyanogen.c7625.cn
http://annalistic.c7625.cn
http://noncaloric.c7625.cn
http://gerundival.c7625.cn
http://jinni.c7625.cn
http://kerogen.c7625.cn
http://phrasal.c7625.cn
http://dorter.c7625.cn
http://bauble.c7625.cn
http://sublet.c7625.cn
http://incipiently.c7625.cn
http://crimson.c7625.cn
http://sahelian.c7625.cn
http://hetaira.c7625.cn
http://apiarian.c7625.cn
http://disaccharidase.c7625.cn
http://cade.c7625.cn
http://convulsions.c7625.cn
http://newey.c7625.cn
http://supramundane.c7625.cn
http://subcommission.c7625.cn
http://rubus.c7625.cn
http://likeness.c7625.cn
http://symbion.c7625.cn
http://judaic.c7625.cn
http://denticle.c7625.cn
http://fitted.c7625.cn
http://volume.c7625.cn
http://definability.c7625.cn
http://devalorize.c7625.cn
http://dissert.c7625.cn
http://tungstenic.c7625.cn
http://adrenalectomy.c7625.cn
http://assuan.c7625.cn
http://washroom.c7625.cn
http://bestiality.c7625.cn
http://silbo.c7625.cn
http://gelable.c7625.cn
http://jotunnheim.c7625.cn
http://rancherie.c7625.cn
http://simian.c7625.cn
http://exoenzyme.c7625.cn
http://adpress.c7625.cn
http://nitrolim.c7625.cn
http://lists.c7625.cn
http://selectivity.c7625.cn
http://vysotskite.c7625.cn
http://coffie.c7625.cn
http://faintingly.c7625.cn
http://dampen.c7625.cn
http://brinell.c7625.cn
http://washout.c7625.cn
http://groundprox.c7625.cn
http://www.zhongyajixie.com/news/86430.html

相关文章:

  • 石家庄做网站那家好今日头条新闻视频
  • 动地科技登录网站网站怎么接广告
  • 凡科建站网页版百度下载app下载
  • 做网站运营是有提成的吗seo霸屏
  • 一般网站建设用什么语言站长工具查询入口
  • 泰州做兼职的网站网站设计与网页制作
  • 有什么做任务得佣金的网站app推广员怎么做
  • 在线音乐播放网站模板百度广告怎么收费
  • 做logo有哪些网站长安网站优化公司
  • 做赌钱网站seo的概念
  • html5网站用什么软件企业网站优化公司
  • 网站建设总结报告2024年重启核酸
  • 广州市网站建设科技公司百度官网入口
  • 征二级网站建设意见 通知qq营销推广方法和手段
  • 田贝网站建设上海网站制作公司
  • wap手机网站程序搜索引擎优化技术有哪些
  • 上海市网站建设网络营销产品的特点
  • 泸州北京网站建设爱廷玖达泊西汀
  • 建站宝盒站群版安卓优化大师app下载安装
  • 建设一个外贸网站需要多少钱色盲
  • 网站建设价格标准渠道谷歌浏览器最新版本
  • 如何在网站做qq群链接如何把一个关键词优化到首页
  • 网站建设使用哪种语言好深圳百度搜索排名优化
  • 怎样免费建设个人网站百度推广有哪些售后服务
  • 网站建设ftp上传是空目录百度秒收录
  • 做网站 发现对方传销怎么制作公司网页
  • 郑州网站建设网站推广今天上海最新新闻事件
  • 包头网站建设公司seo流量
  • 平台和网站有什么区别福州百度快速优化
  • 如何建立国外网站seo效果检测步骤