Spring框架體系簡介
Spring是一種輕量級的控制反轉和麵向切面的容器框架。
Spring 3.0框架是一個分層架構,由20多個模組組成,這些模組被分成了5個部分,分別為資料訪問/整合、Web、AOP、核心容器和測試5個部分。
1、核心容器(Core Container)
Core Container由以下Core和Beans、Context、Expression Language模組組成。
(1)Core和beans模組:這兩個模組提供了框架的基礎功能部分,包括IoC和依賴注入的特徵。BeanFactory是一個工廠模式的應用,它消除了程式化的單例模式,並且允許封裝配置和從實際程式中確定依賴關係。
(2)Context模型:該模組建立在Core和Beans模型上:通過它可以訪問被框架管理的物件,這類似於JNDI註冊。Context模組從Beans模組中集成了不少的特徵,並且添加了對國際化的支援。Context模組同樣支援JavaEE的特徵,例如EJB和基礎遠端訪問。
(3)Expression Language(表示式語言):該模組提供了一個強大的表示式語言來查詢和處理一個物件,在執行時,它是統一表達式的擴充套件,該語言支援設定和訪問屬性數值、方法的呼叫、訪問上下文陣列、集合陣列、索引陣列、命名變數,通過名字可以從Spring IoC容器中獲取物件。
2、資料訪問/整合(Data Access/Integration)
資料訪問/整合包括JDBC、ORM、OXM、JMS和事務模組。
(1)JDBC:該模組提供了一個JDBC的抽象層,消除了對JDBC個性編碼的需求。而且統一了資料庫訪問的錯誤程式碼。
(2)ORM:該模組提供了處理物件關係對映的API來進行整合,使用ORM包,可以使用這些O/R-mapping框架,同時也可以使用Spring的其他功能,例如相對簡單的宣告性事務管理功能。
(3)OXM:該模組提供了Object/XML對映的抽象層,為JAXB、Castor、XMLBeans、JiBX和XStream等。
(4)JMS:該模組包含了生產和消費資訊的功能。
(5)Transactions:事務模組提供了程式化和宣告性的事務管理,這個功能可以為所有類和POJO所用。
3、Web
Web層由Web、Servlet、Portlet和Struts模組組成。
(1)Web:該模組提供了基礎的面向Web的整合特徵,例如多檔案上傳功能。使用Servlet監聽來初始化IoC容器和麵向Web的應用程式上下文環境。它同樣包含Spring的遠端訪問相關的Web部分的內容。
(2)Servlet:該模組包含了Spring的MVC應用。Spring的MVC框架提供了一個條理的在程式碼模型和Web表單及其他Spring框架整合方面的分離。
(3)Portlet:該模組提供了一個MVC的應用,該應用可以使用在一個Portlet環境下,並且可以對映實現一個Servlet模組的功能。
(4)Struts:該模組包含了整合傳統Struts Web層的類。但是值得注意的是,該部分已經在Spring 3.0中不推薦使用了,可以考慮整合應用程式到Struts 2 或是整合到一個Spring MVC解決方案,或是和Spring框架進行整合。
4、AOP和架構
Spring在它的AOP模組中提供了對面向切面程式設計的豐富支援。
5、Test
Test模組支援測試Spring的元件,通過使用JUnit和TestNG提供了同步裝載SpringAPPlicationContexts和緩衝這些上下文環境。它也提供了Mock物件,這些物件可以用來獨立測試程式碼。