Spring Framework模塊體系
spring-overview.png
在我們談論Spring框架的時候儒恋,我們主要討論的是IOC
和AOP
兩塊,所以從源碼解析角度出發(fā)菇晃,我們這里主要關注以下兩塊:
-
Core Container
這塊也就是IOC
的實現(xiàn)模塊。我們需要清除其中包括的4個模塊具體的分工。- Core:是核心工具類筹误,就像我們平時分模塊的時候,會封裝統(tǒng)一工具類癣缅,方便到時候其它模塊引用厨剪,避免反復造輪子。
- Beans:這里是
IOC
的核心實現(xiàn)友存,涉及了配置文件的訪問祷膳,還有主要對Bean的管理。 - Context:該模塊就是基于
Core
和Beans
模塊屡立,在繼承Beans的特性的同時直晨,提供了大量的核心擴展:國際化、事件傳播膨俐、資源價值等勇皇。其中引入了ApplicationContext
接口更是關鍵。也實現(xiàn)了對IOC
容器的具體應用焚刺,有我們熟悉的Cache儒士、RMI、Schedule檩坚、Validation等着撩。 - SpEL:表達式語言,也是我們經(jīng)常忽視的一塊匾委,但如果自己寫框架(指基于Spring生態(tài)構建的)拖叙,這塊還是很重要的,比如:jetcache(這里一些的動態(tài)功能赂乐,主要也是通過注解中表達式語言的應用)薯鳍。
AOP
面向方面的編程。Core Container
更關注的是對實例縱向的定制,不斷的擴展單個Bean實例的能力挖滤,而我們需要對廣度的操作崩溪,就需要通過AOP
,從全局把控的角度出發(fā)斩松,比如:事務的應用伶唯、統(tǒng)一日志、分布式框架中的追蹤鏈埋點惧盹。
其它模塊簡述
Data Access/Integration
主要包括JDBC乳幸、ORM、OXM钧椰、JSM和Transaction模塊粹断,這些建議后期自己分析學習Web
也就是我們熟悉的Spring MVC
總結
Spring主要還是IOC
和AOP
兩塊,這兩塊通過不同的擴展點嫡霞,讓Spring框架做到了包羅萬象瓶埋,也是Spring生態(tài)圈蓬勃發(fā)展到現(xiàn)在的關鍵。
隨著技術的發(fā)展诊沪,框架的使用越來越簡單养筒,但還是需要真正熟悉Spring源碼,才能做到隨心所欲的擴展(埋點)娄徊,后續(xù)寫通用工具類簡化代碼,避免反復的Ctrl+C
盾戴、Ctrl+V
寄锐。
后續(xù)我們通過閱讀郝佳
的Spring源碼深度解析
和工作中切實案例結合分析Spring中IOC
和AOP
兩塊源碼。