统计局网站建设情况千万不要做手游推广员

pingmian/2025/10/13 19:03:23/文章来源:
统计局网站建设情况,千万不要做手游推广员,西安公司网页制作,做网站打电话怎么和客户说目录 前置知识循环依赖的产生Spring里面的3个Map 课程内容一、只有一级缓存的推理演进1.1 直接将实例化后生成的对象放入到单例池里面1.1 引入一个中间Map存实例化后的早期对象#xff08;疑似二级缓存#xff09;1.3 解决1.2需要被代理的问题#xff08;疑似二级缓存#… 目录 前置知识循环依赖的产生Spring里面的3个Map 课程内容一、只有一级缓存的推理演进1.1 直接将实例化后生成的对象放入到单例池里面1.1 引入一个中间Map存实例化后的早期对象疑似二级缓存1.3 解决1.2需要被代理的问题疑似二级缓存1.4 为什么要三级缓存 学习总结 前置知识 循环依赖的产生 说到循环依赖大家都不陌生循环依赖的代码就是如下 Component public class CircularA {AutowiredCircularB b; }Component public class CircularB {AutowiredCircularA a; } 但是大家有没有想过循环依赖是如何产生的然后又是怎么解决的呢这里我想给大家推演一下就像咱是Spring作者一样思考如何循环依赖。 Spring里面的3个Map 在这里我还是想提前给大家先大概解释一下在获取单例bean的时候Spring源码出现的3个Map。分别如下 MapString, Object singletonObjects一级缓存。这个就是我们常说的单例池这里存放的bean是经历了完整Spring生命周期的【走完了Spring所设计的生命周期】这里的经历完整生命周期不是说非得要经历什么实例化前后、初始化前后。简单说是Spring认可的成熟的BeanMapString, Object earlySingletonObjects二级缓存。直接直译过来这里存的是【早期单例Bean】。何为早期就是相对前面的【成熟Bean】【还没有走完生命周期】的Bean。MapString, ObjectFactory? singletonFactories三级缓存。直译过来是【单例bean的工厂】。其实我还是喜欢用一个之前提到过的专有名词去解释生产Bean的钩子方法缓存。 课程内容 一、只有一级缓存的推理演进 我们先来看个图在没有三级缓存之前只有一个一级缓存的时候如果A依赖了BB依赖了A那么就会造成下面的现象 很显然在我们刚开创建的过程中单例池里面是不会有对象B也不会有对象A的。毕竟它们才走到第二步【注入属性】它是在最后一步才会把生成好的对象放入单例池中。所以上图的情况如果没有外部干预的话在这两个bean之间就形成了一个闭环无法解开了。这显然不是我们想要的结果对吧。那这个问题该如何解决呢 1.1 直接将实例化后生成的对象放入到单例池里面 这时候一个很正常的想法是我提前放入到单例池里面不就行了吗如下所示 这样不就打破了吗嘿嘿嘿 只能说有点道理但不多。因为在多线程环境下可能会把【没初始化完】的bean暴露出去。这时候如果有人来访问单例池直接拿到了这个BeanA然后去调用里面的方法在没有【属性注入】过的情况下不就G了吗是的这就是并发安全问题这里只能直接pass这个方案了 1.1 引入一个中间Map存实例化后的早期对象疑似二级缓存 一个很正常的思考我新增一个Map在实例化后即刻存起来不就得了呗。反正都已经实例化了地址已经固定了后面再怎么操作都是对这个地址上的对象操作提前把这个对象暴露出去完全不影响结果啊。 如上图所示那我新增一个中间缓存Map来存储之前实例化后的对象总可以吧嗯从流程图上来看这个真的好像是最终答案了。 不过如果这时候我问你【AOP在哪】阁下将如何应对呢很显然啊这里存放的是原始对象那如果我需要的是被代理的对象呢看吧这样稍微一推敲又出现问题了。那好我们继续完善这个方案就是了 1.3 解决1.2需要被代理的问题疑似二级缓存 就这样多加上一步AOP过程不就行了嘛嘿嘿嘿。不过按照惯例我已经【嘿嘿嘿】了所以肯定得问一句真的行吗哈真的行确实没问题了。那为什么还要三级缓存呢 1.4 为什么要三级缓存 讲到这里我就要开始装逼了。我甚至怀疑Spring这么写也是在【装逼】哈哈开个玩笑 其实这个网上挺多论调的我也是总结了百家之长再结合我课堂上老师说的总结出了以下结论算是个人之见大家参考一下 生命周期被打破这个我认为是最重要的原因但是也比较难被理解的一点。怎么理解呢大家还记得我以开始怎么形容Spring的吗Spring的核心是什么大家知道AOP的实现是在一块吗 第一个问题Spring是实现了AOP技术的IOC容器第二个问题Spring的核心是IOC跟AOP但是所有的基础都来自于IOC第三个问题AOP的实现是在bean生命周期的【初始化后】阶段。因为AOP技术目前的实现也是基于Spring提供的众多拓展点里面的某些个而已。比如AOP的实现就使用了BeanPostProcessor。这里透露出来的意思是什么呢我认为它的意思是在Spring内部都只是把AOP当作额外拓展而已。就好像是我们基于Spring的拓展点实现了Mybatis实现了SpringMVC一样的道理。 PS所以到了这里大家伙知道这个【生命周期被打破】如何理解了吗如果我们在实例化后就做判断是否需要做AOP的话等于还没【属性注入】还没做【初始化前】、【初始化】、【初始化后】等等生命周期呢就要开始了。并且呀在实现这个AOP的过程中你还得调用类似如下的方法 for(BeanPostProcessor bp : this.beanPostProcessorsCache) {bp.postProcessAfterInitialization(bean); }但是这个代码其实在后面的【初始化后】也会被调用的。我猜有的朋友会这么说那我循环遍历实现了AOP的那几个指定的实现了AOP的BeanPostProcessor不就行了吗嗯说实在确实行。不过如果我们站在Spring的角度来看AOP不过也是我IOC的一个拓展内容而已。这么来看的话这么实现就侵入有点大了而且语义上也稍微变了。 循环依赖出现频率。我想我呢问大家你在实际使用场景中循环依赖出现的多吗弟弟我写Java代码4年多我印象中就几次而已。so你看看上面的解决方案如何它每一次实例化生成Bean之后都做了判断是否有点多余呢代码风格说这个就很抽象了但是对于Spring这种优秀的源码来说又有点情有可原。这句话怎么理解呢 其实2、3要结合起来一起建立在【1】最后的挣扎上即我还是要在【实例化】完成后就开始判断是否需要AOP。 学习总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站平台建设招标书中国外贸论坛

教育 -航空概论-章节资料考试资料-郑州航空工业管理学院【】 第1部分单元作业 第1部分单元测验 1、【单选题】航空是指载人或不载人的飞行器在地球 的航行活动。 A、高空 B、大气层内 C、宇宙 D、大气层外 参考资料【 】 2、【单选题】轻于空气的航空器靠 升空。 A、与空气相对…

六盘水住房和城乡建设部网站wordpress关于

MySQL 一、练习要求二、练习过程 一、练习要求 创建表并插入数据: 字段名数据类型主键外键非空唯一自增idINT是否是是否nameVARCHAR(50)否否是否否glassVARCHAR(50)否否是否否 sch 表内容 id name glass 1 xiaommg glass 1 2 xiaojun glass 21、创建一个可以统计…

长春站是火车站还是高铁站建设医院网站的重点与难点在于

文章目录 1. 新建工程2. 打开工程3. 加载点云1. 新建工程 打开StonexSiScan点云后处理软件,点击【新建】按钮。 选择工程存放路径,输入工程名称。 2. 打开工程 点击【打开】按钮。

黄埔网站建设(信科网络)wordpress访问源端口号

1.编译lcx源码: GitHub - UndefinedIdentifier/LCX: 自修改免杀lcx端口转发工具 2.在win7上安装vs2010并编译生成lcx.exe 3.在要被控制主机上运行: lcx -slave 192.168.31.248 51 192.168.31.211 3389 192.168.31.248为远程主控制主机,51为远程主机端口 192.168.31.211为被…

广西南宁市住房和城乡建设局网站企业中征码查询入口

随着人们的生活水平的提升,越来越多小伙伴来开始追求更高的生活水平,一些智能化的小家电就被发明出来,而且内衣洗衣机是其中一个。我们对内衣裤的清洗频次会高于普通衣服,大多数人会选择手洗内衣裤,都在手洗过程不仅会…

做海报哪个网站好高清装饰画图片素材网

前五年—中国十大科技进展新闻(2012-2017) 2017年中国十大科技进展新闻1. 我国科学家利用化学物质合成完整活性染色体2. 国产水下滑翔机下潜6329米刷新世界纪录3. 世界首台超越早期经典计算机的光量子计算机诞生4. 国产大型客机C919首飞5. 我国首次海域天…

郑州营销型网站推广怎样建设一个网站赚钱

摘要:在目前的六氟化硫气体精密计量中普遍采用重量法和定容法两种技术,本文分析了重量法中存在的问题以及定容法的优势,同时也指出定容法在实际应用中还存在自动化水平较低的问题。为了提高定容法精密计量过程中的自动化水平,本文…

网站建设报告实训步骤建设局是什么单位

力扣面试150题 | 买卖股票的最佳时期 题目描述解题思路代码实现 题目描述 121.买卖股票的最佳时期 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一…

云服务器怎么做多个网站沈阳网站关键词优化排名

加载并理解您的数据。 本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2 提取码:uDzP 文章目录 1、使用Pandas了解你的数据2、解释数据描述1、使用Pandas了解你的数据 任何机器学习项目的第一步都是熟悉数据。您将使用Pandas库进行此操作。Pandas是数…

常用的网站开发语言厦门市建设工程造价网站

这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了。 今天我又重新捡了起来。(哈哈1A了) 题意: 没有上司的舞会判重 思路: hash一下树形DP 题目中给的人名hash到数字,再进行运算。 树形DP f[x…

用自己的网站做淘客佛山广告设计公司排名

在 Java 开发领域,Spring 框架无疑是一颗璀璨的明星,它不仅提供了全面的企业级特性,还为开发者提供了简便而强大的开发方式。本文将深入探讨 Spring 框架的简介、配置和快速入门,带你轻松驾驭 Java 世界的利器。 Spring 简介 Sp…

winserverfrp可以做网站吗网站模板类型

GNU 编译器集合是一系列用于语言开发的编译器和库的集合,包括: C, C, Objective-C, Fortran, Ada, Go, and D等编程语言。很多开源项目,包括 Linux kernel 和 GNU 工具,都是使用 GCC 进行编译的。 默认的 CentOS 软件源包含了一个软件包组&a…

南昌网站建设方案报价可以设计制作网页的软件

%d 有符号10进制整数 %ld 长整型 %hd短整型%md,m指定的是输出字段的宽度,默认左补空格, 如果数据的位数小于m,则左端补以空格,若大于m,则  按实际位数输出,如:  printf("%4d,%4d",a,b)  若…

手表网站素材聚通装潢官网电话

//去左右空格; function trim(s){return s.replace(/(^\s*)|(\s*$)/g, ""); }

国内网站开发河南省公共资源交易中心

概述 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他的代码出现错误。传统的自动化回归测试需要手动编写脚本获得页面元素的视图树,与原有的元素视图树进行比对。当功能进行频繁迭代时,测试同学维护这些视图…

it在线学习网站开发网站更新了

⑸ 集合运算连接 有时候,用户希望在SQL查询中利用关系代数中的集合运算(并、交、差)来组合关系,SQL为此提供了相应的运算符:UNION、INTERSECT、EXCEPT(oracle的minus?),分别对应于集合运算的∪、∩、-。它…

做网站比较好的公司有哪些互联网广告销售是做什么的

数据库缓存策略 以下是数据库与缓存的五种常见策略。 1缓存旁路 缓存旁路(Cache-Aside) 在缓存旁路策略中,数据库缓存位于数据库旁边。当应用程序请求数据时,它会首先检查缓存 如果缓存中存在数据(缓存命中&#xff…

专门做家纺的网站阿里网站建设App开发

近期大家都知道阿里推出了自己的开源的大模型千问72B,据说对于中文非常友好,在开源模型里面,可谓是名列前茅。 千问拥有有强大的基础语言模型,已经针对多达 3 万亿个 token 的多语言数据进行了稳定的预训练,覆盖领域、…

服装电子商务网站版式设计WordPress评论加入ip

前言 rust 学习曲线非常陡峭,但是基本语法也还算挺好理解,自动内存管理有点类似智能指针,基本看一下语法入门就可以大概理解,但是唯独宏很难理解,语法非常晦涩。但是功能非常强大。声明宏类似于c语言的宏处理&#xf…

国家企业公司网站建设网站定制设计价目表

类加载器工作机制:1.装载:将Java二进制代码导入jvm中,生成Class文件。2.连接:a)校验:检查载入Class文件数据的正确性 b)准备:给类的静态变量分配存储空间 c)解析&#xf…