原创 《spring設計思想》18-bean知識總結

現在spring中的bean來源主要有兩個: 一個是掃描資源文件xml/properties等加載BeanDefinition 二是掃描Annotation標註的Class文件加載BeanDefinition 不管是哪一種,我們都知道讀取

原创 《Spring設計思想》17-bean初始化最後階段applyBeanPostProcessorsAfterInitialization

上面幾節內容總結了initializeBean方法中的前三步,第一步:invokeAwareMethods 第二步:applyBeanPostProcessorsBeforeInitialization  第三步:invokeInitMe

原创 《spring設計思想》16-bean初始化階段的自定義初始方法

上面兩節14:講了initializeBean中的第一步invokeAwareMethods 15:講了initializeBean中的第二步,applyBeanPostProcessorsBeforeInitialization 這節我

原创 《spring設計思想》14-initializeBean,bean的初始化做了啥

回到代碼中,觀察initializeBean方法 /** * Initialize the given bean instance, applying factory callbacks * as well as init m

原创 《Spring設計思想》15-bean初始化中BeanPostProcessor的回調

上一節講到bean初始化方法initializeBean方法的第一步,invokeAwareMethods。 這節將初始化bean的第二步,applyBeanPostProcessorsBeforeInitialization方法 看代碼

原创 《spring設計思想》12-InstantationAwareBeanPostProcessor-applyProperties之前回調postProcessProperties

第11節講到InstantiationAwareBeanPostProcessor在bean被Spring“注入”屬性之前將其帶走了,那沒被InstantiationAwareBeanPostProcessor帶走的bean,接下來面對的

原创 《spring設計思想》8-BeanDefinition中的beanClass從String轉換爲Class

上一節梳理了一下BeanDefinition的合併過程,而且講到BeanDefinition中的基本屬性 @Nullable private volatile Object beanClass; beanClass屬性描述的是Be

原创 《Spring設計思想》11-InstrantiationAwareBeanPostProcessor,實例化之後回調:postProcessAfterInstantiation

第9節書中寫道:beanDefinition實例化之前給了至尊寶一個機會,讓他帶自己離開,不再進行默認的實例化,但是至尊寶啥也沒做 所以第10節beanDefinition還是默認進行了實例化,生成了bean。這個時候紫霞穿好了嫁衣,馬上

原创 《spring設計思想》7-BeanDefinition的合併-mergeBeanDefinition

上一節講到了spring中依託PropertiesBeanDefinitionReader/XmlBeanDefinitionReader/AnnotatedBeanDefinitionReader幾個類解析資源文件/class類來加載B

原创 《Spring設計思想》13-bean的實例化和初始化階段概覽

前面幾節終於講完了bean的實例化過程,圍繞着bean的實例化,spring做了衆多的準備工作: 1-加載beanDefinition 2-mergeBeanDefinition 3-加載bean的Class 4-調用Instantiat

原创 《spring設計思想》9-IntrantiationAwareBeanPostProcessor::實例化前回調-postProcessBeforeInstantiation

上一節說完BeanDefinition中的beanClass屬性從String轉換成了Class。這一節繼續看看beanDefinition發生了什麼, 回到上一節的方法createBean: /** * Central meth

原创 《spring設計思想》10-反射調用實現bean的實例化

上面一節簡單的介紹了InstantiationAwareBeanPostProcessor可以在bean的實例化之前,調用回調的接口-postProcessorBeforInstantiation方法打斷spring bean的默認實現。

原创 《spring設計思想》6 beanDefinition的加載實現

上面第四節講到了spring的DI/look up的數據來源,這次分析一下spring中的beanDefinition是怎麼加載到beanFactory中的。 想一想我們在平時的工作中加載spring beanDefinition的幾個來

原创 【深入理解java虛擬機】第4集--class彙編文件初識

java代碼被編譯成class文件,class文件的結構分爲幾部分 1:文件基本信息(大小,修改時間,MD5) 2:版本號,訪問標誌(public/private) 3:常量池(constant pool)文件中出現的單詞,數字等 4:方

原创 《mysql基礎》第2集-修改語句的執行順序

上一節《查詢語句的執行順序》總體梳理了一下mysql中查詢語句的執行順序,這次梳理一下mysql的修改語句的執行順序 其實修改語句的執行順序跟查詢語句的順序一樣, 1:連接器-處理鏈接,驗證權限 2:查詢緩存-緩存失效,所以不建議在修改頻