日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring 三级缓存_通过画图+视频把循环依赖、监听器等等spring源码讲明白了

發(fā)布時間:2024/9/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring 三级缓存_通过画图+视频把循环依赖、监听器等等spring源码讲明白了 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大家在閱讀源碼的時候有沒有這種感覺:每次要看源碼的時候十分信誓旦旦逼迫自己努力看著源碼,但是還沒看多長時間就會感覺枯燥,無味沒意思,所以我是十分不愿意去看源碼,但是今天福利來了,有位大神通過畫圖+視頻的方式把spring源碼、三級緩存、循環(huán)依賴等等問題徹底講明白了,下面就和大家一起學(xué)習(xí)!

以下展示的圖、視頻以及源碼手冊都可以免費(fèi)獲取,免費(fèi)獲取方式在文末!

Spring架構(gòu)設(shè)計:對象到底怎么創(chuàng)建

視頻

Spring執(zhí)行流程:

黃色區(qū)域:實(shí)例化加載區(qū)域

紅色區(qū)域:為run方法執(zhí)行區(qū)域

視頻

循環(huán)依賴

視頻

通過三級緩存來解決循環(huán)依賴的問題

視頻

三級緩存讀取的順序是什么順序?

先從一級緩存獲取,取不到從二級緩存獲取,取不到從E級緩存獲取

正常情況下,我們應(yīng)該在for循環(huán)中創(chuàng)建所有xml文件中定義的bean對象,但是當(dāng)存在循環(huán)引用的時候,創(chuàng)建A對象的時候順帶手的把B對象創(chuàng)建,因此在創(chuàng)建B的時候直接從一級緩存中獲取即可,不需要重復(fù)創(chuàng)建B對象

通過源碼的debug,已經(jīng)了解了完整的流程:

1、一級,二級,三級緩存中分別存放什么狀態(tài)的對象?

一級緩存放完整對象,二級緩存放完成實(shí)例化但未初始化的對象,3級緩存放lambda表達(dá)式

2、為什么非要使用三級緩存,二級行不行,一級行不行?

一級緩存:

一級緩存中會放置完整對象或者非完整對象,如果在操作的時候恰巧獲取到非完整對象怎么辦?

二級緩存:

一級緩存放完整對象, 級緩存放非完整對象,在創(chuàng)建代理對象的時候,需不需要提前創(chuàng)建出屬性是默認(rèn)值的普通對象?

一定會創(chuàng)建出普通對象

當(dāng)需要創(chuàng)建代理對象的時候,需要執(zhí)行一個lambda表達(dá)式來創(chuàng)建代理類, 如果沒有三級緩存的話,就有可能有一種情況, 剛開始先創(chuàng)建出普通對象,然后被調(diào)用了,后續(xù)又需要代理對象,此時生成了,那么最終使用的效果是有些使用普通對象有些使用代理對象

如果程序中不存在AOP的問題,那么二級緩存足以解決循環(huán)依賴問題

視頻

Spring監(jiān)聽器十五步詳細(xì)執(zhí)行流程

視頻

熟練使用Spring

視頻

Bean的生命周期

視頻

springboot源碼閱讀

需要領(lǐng)取全部圖和視頻教程以及源碼手冊的朋友,麻煩幫忙點(diǎn)贊一下這篇文章+關(guān)注我,免費(fèi)在這篇文章最上邊的封面圖片中!

總結(jié)

以上是生活随笔為你收集整理的spring 三级缓存_通过画图+视频把循环依赖、监听器等等spring源码讲明白了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。