Spring3開發實戰 之 第一章:Spring入門

認識Spring

Spring是什麼

Spring是一種輕量級的、非侵入式的Java/JavaEE應用框架    

Spring背景

Rod Johnson

《Expert One-on-One J2EE Design and Development》(2002)這本書的中文譯本爲《J2EE 設計開發編程指南》(2003)
半年後,一個新的Java Framework發佈,同樣出自Rod Johnson 的手筆,這自然引起了大家極大的興趣,這就是SpringFramework。SpringFramework 實際上是《Expert One-on-One J2EE Design and Development》 一書中所闡述的設計思想的具體實現。
 
 《Expert One-on-One J2EE Development without EJB》 (2004)
nSpring目標
讓J2EE開發變的簡單、易用     (框架的好處)
業務應用“不”依靠 Spring API (非侵入性)
集成已存在的成熟應用解決方案 (如Hibernate,不重複發明輪子)
利用面向對象的優秀技術       (面向接口而非實現編程,組合優於繼承)
促進好的編程習慣             (測試驅動開發,測試簡單,面向接口編程)
讓測試業務應用變得簡單、快速 (無侵入性,測試容易)

Spring優點

有效地組織你的中間層對象
消除各式各樣的配置文件
將面對接口編程做到實處
自由、不依賴框架
將單元測試變的簡單
統一的數據存儲方式
只選擇你需要的

Spring能幹什麼

Spring能幹什麼

籠統說:Spring能作爲一個超級的”粘合”平臺,把很多的技術有效整合到一
起,形成一個整體,以更好的解決問題,並使系統結構更優良、性能更出衆。
(體現體系結構設計的:組件式、裝配式、插拔式、複用性、無侵入式等)
具體點說,Spring能幹的事情很多,最基本的有以下幾條:
1:IoC/DI
2:AOP
3:對JDBC和ORM的支持
4:服務(典型如:事務)
5:各種技術的整合(典型如:Struts2+Spring3+Hibernate3整合,還有很多其他的技術整合,如EJB、JMS等)
6:Web應用框架(SpringMVC)
7:更多技術,如:Spring的Security、Spring的Web Flow、Spring的WebService等等
 

Spring有什麼



上圖是Spring框架2.5版時官方給出的概述圖

Core包

Core封裝包是框架的最基礎部分,提供IoC和依賴注入特性。這裏的基礎概念是BeanFactory,它提供對Factory模式的經典實現來消除對程序性單例模式的需要,並真正地允許你從程序邏輯中分離出依賴關係和配置。
構建於Core封裝包基礎上的 Context封裝包,提供了一種框架式的對象訪問方法,有些象JNDI註冊器。Context封裝包的特性得自於Beans封裝包,並添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式和Context的透明創建,比如說通過Servlet容器。

DAO包

DAO提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼。還提供了一種比編程性更好的聲明性 事務管理方法,不僅僅是實現了特定接口,而且對所有的POJOs(plain old Java objects)都適用。

ORM包

ORM 封裝包提供了常用的“對象/關係”映射APIs的集成層。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封裝包,可以混合使用所有Spring提供的特性進行“對象/關係”映射,如前邊提到的簡單聲明性 事務管理。

AOP包

Spring的 AOP 封裝包提供了符合 AOP 聯盟規範的面向方面的編程實現,讓你可以定義如方法攔截器和切入點,從邏輯上講,可以減弱代碼的功能耦合,清晰的被分離開。而且,利用源碼級的元數據功能,還可以將各種行爲信息合併到你的代碼中 。

Web包

Spring中的Web包提供了基礎的針對Web開發的集成特性,例如多方文件上傳,利用Servlet listeners進行IoC容器初始化和針對Web的application context。這個包使Spring可與其他框架結合。

MVC包

Spring中的 MVC 封裝包提供了Web應用的MVC實現。Spring的MVC框架並不是僅僅提供一種傳統的實現,它提供了一種清晰的分離模型,在領域模型代碼和web form之間。並且,還可以藉助Spring框架的其他特性。

Spring3總共包含了大約20個模塊,這些模塊又被組織成爲:

核心容器部分、數據訪問/集成部分、Web部分、AOP部分和測試支持幾個部分。

核心容器部分(Core Container)又包含如下部分

1:Core和Beans模塊提供了Spring最基礎的功能,提供IoC和依賴注入特性。這裏的基礎概念是BeanFactory,它提供對Factory模式的經典實現來消除對程序性單例模式的需要,並真正地允許你從程序邏輯中分離出依賴關係和配置。
2:Context模塊基於Core和Beans來構建,它提供了用一種框架風格的方式來訪問對象,有些像JNDI註冊表。Context封裝包繼承了beans包的功能,還增加了國際化(I18N),事件傳播,資源裝載,以及透明創建上下文,例如通過servlet容器,以及對大量JavaEE特性的支持,如EJB、JMX。核心接口是ApplicationContext。
3:Expression Language,表達式語言模塊,提供了在運行期間查詢和操作對象圖的強大能力。支持訪問和修改屬性值,方法調用,支持訪問及修改數組、容器和索引器,命名變量,支持算數和邏輯運算,支持從Spring 容器獲取Bean,它也支持列表投影、選擇和一般的列表聚合等。

數據訪問/集成部分(Data Access/Integration)又包含如下部分

1:JDBC模塊,提供對JDBC的抽象,它可消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼。
2:ORM模塊,提供了常用的“對象/關係”映射APIs的集成層。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封裝包,可以混合使用所有Spring提供的特性進行“對象/關係”映射,如簡單聲明性 事務管理 。
3:OXM模塊,提供一個支持Object和XML進行映射的抽象層,其中包括JAXB、Castor、XMLBeans、JiBX和XStream。
4:JMS模塊,提供一套“消息生產者、消費者”模板用於更加簡單的使用JMS,JMS用於用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通信。
5:Transaction模塊,支持程序通過簡單聲明性 事務管理,只要是Spring管理對象都能得到Spring管理事務的好處,即使是POJO,也可以爲他們提供事務。

Web部分又包含如下部分

1:Web模塊,提供了基礎的web功能。例如多文件上傳、集成IoC容器、遠程過程訪問、以及Web Service支持,並提供一個RestTemplate類來提供方便的Restful services訪問
2:Web-Servlet模塊,提供了Web應用的Model-View-Controller(MVC)實現。Spring MVC框架提供了基於註解的請求資源注入、更簡單的數據綁定、數據驗證等及一套非常易用的JSP標籤,完全無縫與Spring其他技術協作。
3:Web-Struts模塊, 提供了對Struts集成的支持,這個功能在Spring3.0裏面已經不推薦了,建議你遷移應用到使用Struts2.0或Spring的MVC。
4:Web-Portlet模塊,提供了在Portlet環境下的MVC實現
 

AOP部分又包含如下部分

1:AOP模塊,提供了符合AOP 聯盟規範的面向方面的編程實現,讓你可以定義如方法攔截器和切入點,從邏輯上講,可以減弱代碼的功能耦合,清晰的被分離開。而且,利用源碼級的元數據功能,還可以將各種行爲信息合併到你的代碼中 。
2:Aspects模塊,提供了對AspectJ的集成。
3:Instrumentation模塊, 提供一些類級的工具支持和ClassLoader級的實現,可以在一些特定的應用服務器中使用
 

Test部分又包含如下部分

1:Test模塊,提供對使用JUnit和TestNG來測試Spring組件的支持,它提供一致的ApplicationContexts並緩存這些上下文,它還能提供一些mock對象,使得你可以獨立的測試代碼。
 
 
視頻配套PPT,視頻地址【 Spring3開發實戰-獨家視頻課程
 原創內容 轉自請註明【http://sishuok.com/forum/blogPost/list/2826.html#7825
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章