Spring 最重要的概念是 IOC 和 AOP,本篇文章其實就是要帶領大家來分析下 Spring 的 IOC 容器。既然大家平時都要用到 Spring,怎么可以不好好了解 Spring 呢?閱讀本文並不能讓你成為 Spring 專家,不過一定有助於大家理解 Spring 的很多概念,幫助大家排查應用中和 Spring 相關的一些問題。
本文采用的源碼版本是 4.3.11.RELEASE,算是 5.0.x 前比較新的版本了。為了降低難度,本文所說的所有的內容都是基於 xml 的配置的方式,實際使用已經很少人這么做了,至少不是純 xml 配置,不過從理解源碼的角度來看用這種方式來說無疑是最合適的。
閱讀建議:讀者至少需要知道怎么配置 Spring,了解 Spring 中的各種概念,少部分內容我還假設讀者使用過 SpringMVC。本文要說的 IOC 總體來說有兩處地方最重要,一個是創建 Bean 容器,一個是初始化 Bean,如果讀者覺得一次性看完本文壓力有點大,那么可以按這個思路分兩次消化。讀者不一定對 Spring 容器的源碼感興趣,也許附錄部分介紹的知識對讀者有些許作用。
希望通過本文可以讓讀者不懼怕閱讀 Spring 源碼,也希望大家能反饋表述錯誤或不合理的地方。
引言
先看下最基本的啟動 Spring 容器的例子:
public static void 