版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Spring的起源和背景RodJohson在2002年編著的《ExpertonetooneJ2EEdesigndevelopment》一書中,對JavaEE正統(tǒng)框架臃腫、低效、脫離現(xiàn)實的種種現(xiàn)狀提出了質(zhì)疑,并積極尋求探索革新之道。以此書為指導(dǎo)思想,他編寫了interface21框架,這是一個力圖沖破JavaEE傳統(tǒng)開發(fā)的困境,從實際需求出發(fā),著眼于輕便、靈巧,易于開發(fā)、測試和部署的輕量級開發(fā)框架。Spring框架即以interface2
2、1框架為基礎(chǔ),經(jīng)過重新設(shè)計,并不斷豐富其內(nèi)涵,于2004年3月24日,發(fā)布了1.0正式版。同年他又推出了一部堪稱經(jīng)典的力作《ExpertonetooneJ2EEDevelopmentwithoutEJB》,該書在Java世界掀起了軒然大波,不斷改變著Java開發(fā)者程序設(shè)計和開發(fā)的思考方式。在該書中,作者根據(jù)自己多年豐富的實踐經(jīng)驗,對EJB的各種笨重臃腫的結(jié)構(gòu)進行了逐一的分析和否定,并分別以簡潔實用的方式替換之。至此一戰(zhàn)功成,RodJoh
3、nson成為一個改變Java世界的大師級人物。傳統(tǒng)J2EE應(yīng)用的開發(fā)效率低,應(yīng)用服務(wù)器廠商對各種技術(shù)的支持并沒有真正統(tǒng)一,導(dǎo)致J2EE的應(yīng)用沒有真正實現(xiàn)WriteOnce及RunAnywhere的承諾。Spring作為開源的中間件,獨立于各種應(yīng)用服務(wù)器,甚至無須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服務(wù)器的功能,如聲明式事務(wù)等。Spring致力于J2EE應(yīng)用的各層的解決方案,而不是僅僅專注于某一層的方案??梢哉fSpring是企業(yè)應(yīng)用開發(fā)的“一站
4、式”選擇,并貫穿表現(xiàn)層、業(yè)務(wù)層及持久層。然而,Spring并不想取代那些已有的框架,而是與它們無縫地整合。Spring簡介Spring是一個開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。◆目的:解決企
5、業(yè)應(yīng)用開發(fā)的復(fù)雜性◆功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能◆范圍:任何Java應(yīng)用簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架?!糨p量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴
6、于Spring的特定類。通過Spring提供的IoC容器,我們可以將對象之間的依賴關(guān)系交由Spring進行控制,避免硬編碼所造成的過度程序耦合。有了Spring,用戶不必再為單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應(yīng)用?!鬉OP編程的支持通過Spring提供的AOP功能,方便進行面向切面的編程,許多不容易用傳統(tǒng)OOP實現(xiàn)的功能可以通過AOP輕松應(yīng)付?!袈暶魇绞聞?wù)的支持在Spring中,我們可以從單調(diào)煩悶的
7、事務(wù)管理代碼中解脫出來,通過聲明式方式靈活地進行事務(wù)的管理,提高開發(fā)效率和質(zhì)量?!舴奖愠绦虻臏y試可以用非容器依賴的編程方式進行幾乎所有的測試工作,在Spring里,測試不再是昂貴的操作,而是隨手可做的事情?!舴奖慵筛鞣N優(yōu)秀框架Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優(yōu)秀框架(如StrutsHibernate、Hession、Quartz)等的直接支持?!艚档蚃avaE
8、EAPI的使用難度Spring對很多難用的JavaEEAPI(如JDBC,JavaMail,遠程調(diào)用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些JavaEEAPI的使用難度大為降低?!鬔ava源碼是經(jīng)典學(xué)習(xí)范例Spring的源碼設(shè)計精妙、結(jié)構(gòu)清晰、匠心獨用,處處體現(xiàn)著大師對Java設(shè)計模式靈活運用以及對Java技術(shù)的高深造詣。Spring框架源碼無疑是Java技術(shù)的最佳實踐范例。如果想在短時間內(nèi)迅速提高自己的Java技術(shù)
9、水平和應(yīng)用開發(fā)水平,學(xué)習(xí)和研究Spring源碼將會使你收到意想不到的效果。Spring框架的好處在我們進入細節(jié)以前,讓我們看一下Spring可以給一個工程帶來的一些好處:◆Spring能有效地組織你的中間層對象無論你是否選擇使用了EJB。如果你僅僅使用了Struts或其他的包含了J2EE特有APIs的framewk,你會發(fā)現(xiàn)Spring關(guān)注了遺留下的問題?!鬝pring能消除在許多工程上對Singleton的過多使用。根據(jù)我的經(jīng)驗,這是
10、一個主要的問題,它減少了系統(tǒng)的可測試性和面向?qū)ο筇匦??!鬝pring能消除使用各種各樣格式的屬性定制文件的需要在整個應(yīng)用和工程中,可通過一種一致的方法來進行配置。曾經(jīng)感到迷惑,一個特定類要查找迷幻般的屬性關(guān)鍵字或系統(tǒng)屬性為此不得不讀Javadoc乃至源編碼嗎?有了Spring,你可很簡單地看到類的JavaBean屬性。倒置控制的使用(在下面討論)幫助完成這種簡化。◆Spring能通過接口而不是類促進好的編程習(xí)慣,減少編程代價到幾乎為零。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論