一,spring的整體架構
spring是一個分層架構,被分爲大約有20個模塊,主要分爲五大類。
一(1),Core Container(核心容器)
Core核心容器模塊 包括 core , beans ,context , Expression Language模塊。core和beans 模塊是框架的基礎部分(beanfactory)提供IOC和依賴注入的特性。
-
core模塊是spring的核心工具類,spring的其他組件都要用到這個包裏的類。
-
bean模塊是所有應用都要用到的,包含訪問配置文件,創建管理bean 以及進行控制反轉和依賴注入的各種操作
-
context模塊構建於core和beans模塊之上,繼承了beans的特性,爲spring核心提供了大量拓展,添加了對國際化例如資源綁定,事件傳播,資源加載和對context透明創建的支持。ApplicationContext接口是Context模塊的關鍵。
-
Expression language模塊提供了一個強大的表達式語言用於在運行時查詢和操縱對象。支持設置和獲取屬性的值,屬性的分配,方法的調用,訪問數組上下文,容器和索引器,邏輯和算術運算符,命名變量和從IOC容器中根據名稱檢索對象,支持list投影,選擇,和一般的list聚合。
一(2),Data Access/Integration
Data Access/Integration層包含有JDBC,ORM,OXM,JMS和Trascation模塊,其中:
- JDBC模塊提供了一個JDBC抽象層,包含了spring對JDBC數據訪問進行封裝的所有類。
- ORM模塊爲流行的對象-關係映射API,入JPA,JDO,Hibernate,iBatis等,提供了一個交互層,利用ORM封裝包可以混合所有spring提供的特性進行O/R映射。
- OXM模塊提供了Obeject/XML映射實現的抽象層,包括JAXB, Castor, XMLBeans, JiBX, XStream。
- JMS模塊主要包含了一些製造和消費消息的特性。
- Transaction模塊支持編程和聲明性的事物管理,這些事物類必須實現特定的接口,並對所有的pojo都適用。
一(3),web
web上下文模塊建立在應用程序上下文模塊之上,爲基於web的應用程序提供了上下文。
- web模塊,提供了基礎的面向web的集成特性。例如,多文件上傳等
- web-servlet模塊,包含了spring的modile-view-controller(MVC)實現。
- web-struts模塊,提供了對於struts的支持。
- web-porlet模塊,提供了porlet環境和web-servlet模塊的MVC實現。
一(4),aop
AOP模塊可以定義方法攔截器和切點,從而將邏輯代碼分開,降低耦合性。
- aspects模塊提供了對於AspectJ的定義支持。
- Instrumentation模塊提供了class instrumentation支持和classloader實現,使得可以在特定的應用服務器上使用。
一(5),test
test模塊支持用Junit和TestNG對spring組件進行測試。