
【基本介紹】
Spring Framework 是一個開源的Java/Java EE全功能棧(full-stack)的應(yīng)用程序框架,以Apache許可證形式發(fā)布,也有.NET平臺上的移植版本。該框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一書中的代碼,最初由 Rod Johnson 和 Juergen Hoeller等開發(fā)。Spring Framework提供了一個簡易的開發(fā)方式,這種開發(fā)方式,將避免那些可能致使底層代碼變得繁雜混亂的大量的屬性文件和幫助類。在設(shè)計應(yīng)用程序Model時,MVC 模式(例如Struts)通常難于給出一個簡潔明了的框架結(jié)構(gòu)。Spring卻具有能夠讓這部分工作變得簡單的能力。程序開發(fā)員們可以使用Spring的 JDBC 抽象層重新設(shè)計那些復(fù)雜的框架結(jié)構(gòu)。
【軟件特色】
強大的基于 JavaBeans 的采用控制翻轉(zhuǎn)(Inversion of Control,IoC)原則的配置管理,使得應(yīng)用程序的組建更加快捷簡易。一個可用于從 applet 到 Java EE 等不同運行環(huán)境的核心 Bean 工廠。
數(shù)據(jù)庫事務(wù)的一般化抽象層,允許宣告式(Declarative)事務(wù)管理器,簡化事務(wù)的劃分使之與底層無關(guān)。
內(nèi)建的針對 JTA 和 單個 JDBC 數(shù)據(jù)源的一般化策略,使 Spring 的事務(wù)支持不要求 Java EE 環(huán)境,這與一般的 JTA 或者 EJB CMT 相反。
JDBC 抽象層提供了有針對性的異常等級(不再從SQL異常中提取原始代碼), 簡化了錯誤處理, 大大減少了程序員的編碼量. 再次利用JDBC時,你無需再寫出另一個 '終止' (finally) 模塊. 并且面向JDBC的異常與Spring 通用數(shù)據(jù)訪問對象 (Data Access Object) 異常等級相一致.
以資源容器,DAO 實現(xiàn)和事務(wù)策略等形式與 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用眾多的翻轉(zhuǎn)控制方便特性來全面支持, 解決了許多典型的Hibernate集成問題. 所有這些全部遵從Spring通用事務(wù)處理和通用數(shù)據(jù)訪問對象異常等級規(guī)范.
靈活的基于核心 Spring 功能的 MVC 網(wǎng)頁應(yīng)用程序框架。開發(fā)者通過策略接口將擁有對該框架的高度控制,因而該框架將適應(yīng)于多種呈現(xiàn)(View)技術(shù),例如 JSP,F(xiàn)reeMarker,Velocity,Tiles,iText 以及 POI。值得注意的是,Spring 中間層可以輕易地結(jié)合于任何基于 MVC 框架的網(wǎng)頁層,例如 Struts,WebWork,或 Tapestry。
提供諸如事務(wù)管理等服務(wù)的面向方面編程框架。
【入門攻略】
Spring的基礎(chǔ)思想來源于Rod Johnson的一本著名的j2ee書籍:Expert One-on-One J2EE Design and Development (Programmer to Programmer),在這本書中,Rod根據(jù)他自己多年的j2ee開發(fā)經(jīng)驗,提出了眾多新穎的思想,當然如果想看這本書的話,最好看英文版,因為中文版被翻譯的慘不忍睹,看了會幾天吃不下睡不著的......在上面那本書附帶的代碼基礎(chǔ)上,以Rod Johnson和Juergen Hoeller兩人為核心的一個開發(fā)團隊經(jīng)過努力,于2004年3月份發(fā)布了Spring Framework 1.0版,一經(jīng)發(fā)布就引起了業(yè)界的強烈關(guān)注,目前各種java相關(guān)的會議中都有Rod Johnson等人的出現(xiàn),最近Rod Johnson和Juergen Hoeller兩人合作了一本新書。
Expert One-on-One J2EE Development without EJB也已出版熱銷,可惜的目前國內(nèi)尚無法看到。目前,Spring Framework已經(jīng)接近發(fā)布1.1 RC1,從Spring的郵件列表看,Juergen Hoeller正在組織最后的修改和測試,估計幾日內(nèi)就可以看到他們努力的成果。
另外,圍繞在Spring周圍的一些相關(guān)項目也在活躍的開展著,其中在Spring Framework首頁上提供鏈接的Acegi Security System for SpringFramework是其中的佼佼者,該項目的主要目的是為SpringFramework提供安全機制,它充分利用Spring的AOP,采用Spring的風(fēng)格,很容易讓熟悉Spring的開發(fā)人員上手。此外,SpringFramework也開始了.Net版本的開發(fā),當然目前處于起步階段,而且是另外一個團隊在開發(fā)。
目前在使用Spring的開發(fā)人員中,多數(shù)人傾向于Struts+Spring+Hibernate的組合,但經(jīng)過本人的學(xué)習(xí),我感覺Spring提供的 MVC框架更為出色優(yōu)雅,無須Struts的介入,如果沒有歷史遺留問題的困擾(如已經(jīng)存在大量Struts代碼或者開發(fā)人員已經(jīng)對Struts非常熟悉),建議采用Spring+Hibernate,再加上Acegi實現(xiàn)認證和授權(quán),將是很不錯的開發(fā)框架。
至于開發(fā)環(huán)境,隨著eclipse3.0的發(fā)布,采用這一free的IDE,再加上一些free的plugin,將可以組織出一套非常出色的集成開發(fā)環(huán)境:eclipse3.0 + XmlBuddy 2.0.10 + Lomboz3.0 + Spring IDE for Eclipse。在Spring的開發(fā)團隊中,Rod Johnson是eclipse的支持者,而Juergen Hoeller更喜歡JetBrains的IDEA,目前IDEA已經(jīng)到了4.5 RCVIII版,比4.0又有了很大的提高,如果有錢的話更推薦使用IDEA。
Spring Framework 是一個 Java/Java EE/.NET 的分層應(yīng)用程序框架。該框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一文中的代碼,并最初由 Rod Johnson 和 Juergen Hoeller et al 開發(fā)。Spring Framework 提供了一個簡易的開發(fā)方式,這種開發(fā)方式,將避免那些可能致使底層代碼變得繁雜混亂的大量的屬性文件和幫助類。


































