1.Spring 框架由6個模塊組成
- 上圖是spring4的結構圖,不同版本結構略有差異,但模塊都是相同的。
2.Core Container 核心容器
- 容器是Spring的核心部分,Core Container 模塊是Spring框架的基礎,所有模塊都構建於核心模塊之上。
- Beans : Beans模塊是所有應用都要用到的,它包含訪問配置文件、創建和管理bean以及進行Inversion of Control / Depen-dency Injection(IoC/DI)操作相關的所有類。
- Core : Core模塊主要包含Spring框架基本的核心工具類,Spring的其他組件要都要使用到這個包里的類,Core模塊是其他組件的基本核心。當然你也可以在自己的應用系統中使用這些工具類。
- Context : Spring的上下文即IoC容器,通過上下文可以獲得容器中的Bean。 ApplicationContext接口是Context模塊的關鍵。 Context模塊構建於Core和Beans模塊基礎之上,提供了一種類似於JNDI注冊器的框架式的對象訪問方法。
- SpEl : Expression Language模塊提供了一個強大的表達式語言用於在運行時查詢和操縱對象。
3.Core Container 依賴關系
- 核心模塊中的部分並不是獨立的,他們之間相互依賴着
- 因為spring-core依賴了commons-logging,而其他模塊都依賴了spring-core,所以整個spring框架都依賴了commons-logging。
- 如依賴關系Spring離不開日志,但是日志框架有多種也不一定使用commons-logging如果有自己的日志實現如log4j,可以排除對commons-logging的依賴,沒有日志實現而排除了commons-logging依賴,編譯報錯。關於Spring日志框架請看這篇博文
4. 構建最基礎的Spring項目
- 核心容器四個包
- spring-beans-4.1.3.RELEASE.jar
- spring-context-4.1.3.RELEASE.jar
- spring-core-4.1.3.RELEASE.jar
- spring-expression-4.1.3.RELEASE.jar
- 核心容器依賴的日志包
- commons-logging-1.2.jar
- log4j-1.2.17.jar
- commons-logging相當於一個日志接口,log4j相當於該接口的實現,如果不添加log4j包也可以,因為commons-logging也有一個簡單的實現會自動使用。
- 測試類包
- spring-test-4.1.3.RELEASE.jar
- junit-4.10.jar(高於4.10版本還需要hamcrest-core.jar + hamcrest-library.jar)
- 測試類用到了AOP必須導入aop包
- spring-aop-4.1.3.RELEASE.jar
這樣一個Spring項目所需要的最基礎的環境就搭建完成了。