一.前言
spring的應用非常的廣泛,在開發過程中我們經常接觸,可能會有一種感覺:對spring即熟悉又陌生,熟悉體現在我們幾乎每天都在使用,對spring的IOC、AOP功能都有了基本的了解,和日常開發的具體應用。陌生體現在,我們對spring的整體架構不清楚,不了解spring中實際的DI是怎么注入,經過了那個那些流程,具體怎么樣實現,心中都有一些疑惑。
二.spring概況
Spring是一個開源框架,為了解決企業應用開發的復雜性而創建的,但現在已經不止於企業應用。是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。
- 從大小與開銷兩方面而言Spring都是輕量級的。
- 通過控制反轉(IoC)的技術達到松耦合的目的。
- 提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務進行內聚性的開發。
- 包含並管理應用對象的配置和生命周期,這個意義上是一種容器。
- 將簡單的組件配置、組合成為復雜的應用,這個意義上是框架。
spring號稱J2EE程序就是Spring應用程序(ps:正所謂吹牛也是需要本錢,可見spring具備非常強大的功能,提供了一系列J2EE的解決方案。)
三.spring架構圖解
四.spring中的IOC容器為你工作
五.Bean組件的說明
上面我們談到了spring的核心Bean,在Spring里面Bean主要包含了三塊內容:bean的定義、bean的創建、bean的解析;作為我們開發使用,我們只需要關心bean是如何創建就可以了,而bean的定義,bean的解析是spring自動幫助我們完成的,是透明的。
在spring的bean的設計里面采用了典型的工廠模式設計模式來構建bean的,bean的設計最頂層的接口為BeanFactory,bean的繼承關系圖如下: