原创 你知道Spring是怎麼將AOP應用到Bean的生命週期中的嗎?

聊一聊Spring是怎麼將AOP應用到Bean的生命週期中的? 本系列文章: 聽說你還沒學Spring就被源碼編譯勸退了?30+張圖帶你玩轉Spring編譯 讀源碼,我們可以從第一行讀起 你知道Spring是怎麼解析配置類的嗎?

原创 Spring中AOP相關的API及源碼解析,原來AOP是這樣子的

Spring中AOP相關的API及源碼解析 本系列文章: 讀源碼,我們可以從第一行讀起 你知道Spring是怎麼解析配置類的嗎? 配置類爲什麼要添加@Configuration註解? 談談Spring中的對象跟Bean,你知道S

原创 這篇文章,我們來談一談Spring中的屬性注入

本系列文章: 讀源碼,我們可以從第一行讀起 你知道Spring是怎麼解析配置類的嗎? 配置類爲什麼要添加@Configuration註解? 談談Spring中的對象跟Bean,你知道Spring怎麼創建對象的嗎? 推薦閱讀: S

原创 Spring雜談 | 什麼是ObjectFactory?什麼是ObjectProvider?

在Spring的學習過程中,總是學的越多,不懂的越多。本來只是想將ApplicationContext的相關內容全部梳理一遍,結果發現涉及的東西越來越多,比如上篇文章中的ResolvableType,到這篇文章介紹的Object

原创 Spring官網閱讀(十二)ApplicationContext詳解(中)

文章目錄1、Spring的資源(Resource)接口簡介UML類圖抽象基類AbstractResourceFileSystemResourceAbstractFileResolvingResourceByteArrayResou

原创 Spring官網閱讀(九)Spring中Bean的生命週期(上)

文章目錄生命週期回調1、Bean初始化回調2、Bean銷燬回調3、配置默認的初始化及銷燬方法4、執行順序5、容器啓動或停止回調Lifecycle 接口LifecycleProcessorSmartLifecycle源碼分析啓動階段

原创 Spring雜談 | 你真的瞭解泛型嗎?從java的Type到Spring的ResolvableType

關於泛型的基本知識在本文中不會過多提及,本文主要解決的是如何處理泛型,以及java中Type接口下對泛型的一套處理機制,進而分析Spring中的ResolvableType。 文章目錄Type簡介接口定義UML類圖Parame

原创 算法 | 鏈表的應用,緩存失效算法

我們知道,緩存是一種提高數據讀取性能的技術,在硬件涉及,軟件開發中有着非常廣泛的應用。在使用緩存時我們最大的問題就是緩存的數據是不能太多的,當緩存被佔滿時,我們如何決定哪些數據被清除,哪些數據被保留呢?這個時候,我們就會採用一些

原创 動態代理學習(一)自己動手模擬JDK動態代理

最近一直在學習Spring的源碼,Spring底層大量使用了動態代理。所以花一些時間對動態代理的知識做一下總結。 我們自己動手模擬一個動態代理 對JDK動態代理的源碼進行分析 文章目錄場景:思路:分析:實踐: 場景

原创 從字符串到常量池,一文看懂String類

從字符串到常量池,一文看懂String類設計 從一道面試題開始 看到這個標題,你肯定以爲我又要講這道面試題了 // 這行代碼創建了幾個對象? String s3 = new String("1"); 是的,沒錯,我確實要從這裏

原创 Spring官網閱讀(四)BeanDefinition(上)

前面幾篇文章已經學習了官網中的1.2,1.3,1.4三小結,主要是容器,Bean的實例化及Bean之間的依賴關係等。這篇文章,我們繼續官網的學習,主要是BeanDefinition的相關知識,這是Spring中非常基礎的一塊內容

原创 動態代理學習(二)JDK動態代理源碼分析

上篇文章我們學習瞭如何自己實現一個動態代理,這篇文章我們從源碼角度來分析下JDK的動態代理 先看一個Demo: public class MyInvocationHandler implements InvocationHan

原创 Spring官網閱讀(五)BeanDefinition(下)

上篇文章已經對BeanDefinition做了一系列的介紹,這篇文章我們開始學習BeanDefinition合併的一些知識,完善我們整個BeanDefinition的體系,Spring在創建一個bean時多次進行了BeanDef

原创 Spring官網閱讀(八)容器的擴展點(三)(BeanPostProcessor)

在前面兩篇關於容器擴展點的文章中,我們已經完成了對BeanFactoryPostProcessor很FactoryBean的學習,對於BeanFactoryPostProcessor而言,它能讓我們對容器中的掃描出來的BeanD

原创 Spring官網閱讀(十)Spring中Bean的生命週期(下)

文章目錄生命週期概念補充實例化createBean流程分析doCreateBean流程分析第一步:factoryBeanInstanceCache什麼時候不爲空?第二步:創建對象(createBeanInstance)第三步:ap