一直都在用spring,但是每次一遇到spring深入的問題,就是比較懵的狀態。最近花了段時間學習了一下spring源碼。
雖然工作中,一直在用到spring,可能有時候,並不會特別去關注版本號。所以先簡單介紹一下,spring的版本。
當前的最新快照版本是5.0.0
穩定版本是4.3.8
就不展開一一介紹每個模塊了。 想了解的可以直接去官網了解。就介紹一下常用的,也是大家關心的幾個模塊。
2.1Core Container
該模塊包含 spring-core, spring-beans, spring-context, spring-context-support, 和 spring-expression (Spring Expression Language) .
spring-core和 spring-beans 提供了基礎的功能的支持,包括ioc 和 控制反轉。
spring-context spring的上下文,建立在core和beans的基礎之,增加了對國際化的支持,Spring上下文支持提供集成常見的第三方庫在Spring應用程序上下文。
相信大家在工作中一用到spring就會引入一段jar包, 經常會搞不懂,這些jar具體都是做什么的。下面就介紹一下spring的各個jar包之間的關系。
3.1core
core部分包含5個模塊
- spring-core:依賴注入IoC與DI的最基本實現
- spring-beans:Bean工廠與bean的裝配
- spring-context:spring的context上下文即IoC容器
- spring-context-support
- spring-expression:spring表達式語言
完整的依賴關系圖。(全部引入后查看,已經存在共同依賴同一個包的關系,會存在顯示不同)
3.2aop
aop部分包含4個模塊
- spring-aop:面向切面編程
- spring-aspects:集成AspectJ
- spring-instrument:提供一些類級的工具支持和ClassLoader級的實現,用於服務器
- spring-instrument-tomcat:針對tomcat的instrument實現
其他兩個模塊,沒有依賴,不在繪畫依賴關系圖。
其他模塊,相對明了。 不再詳細展開描述。附帶一張spring官網的依賴包表格。
參考:spring官網。