已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第17章Spring概述 Spring是一個開源框架 是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的 框架的主要優(yōu)勢之一就是其分層架構(gòu) 分層架構(gòu)允許您選擇使用哪一個組件 同時為J2EE應(yīng)用程序開發(fā)提供集成的框架 Spring的核心是個輕量級 Lightweight 容器 Container 實現(xiàn)了IoC InversionofControl 模式的容器 基于此核心容器所建立的應(yīng)用程式 可以達(dá)到程式元件的松散耦合 Loosecoupling 讓程式元件可以進(jìn)行測試 Testability 這些特性都使得整個應(yīng)用程式可以在架構(gòu)上與維護(hù)上都能得到相當(dāng)程度的簡化 17 1Spring簡介 本節(jié)將對Spring做一個簡要的介紹 從中可以理解為什么在J2EE標(biāo)準(zhǔn)已經(jīng)具備了完善的規(guī)范 EJB統(tǒng)治力量如此強(qiáng)大的條件下 還會產(chǎn)生Spring這樣的框架 而且一經(jīng)誕生就被眾多的開發(fā)人員推崇備至 17 1 1Spring項目歷史 Spring是java平臺上的一個開源應(yīng)用框架 它的第一個版本是由RodJohnson寫出來的 Rod在他的 ExpertOne On OneJavaEEDesignandDevelopment Java企業(yè)應(yīng)用設(shè)計與開發(fā)的專家一對一 一書中首次發(fā)布了這個框架 后來一批自愿拓展Spring框架的程序開發(fā)員組成了團(tuán)隊 2003年2月在著名的開源社區(qū) Sourceforge 上構(gòu)建了一個項目 在Spring框架上工作了一年之后 這個團(tuán)隊在2004年3月發(fā)布了第一個版本 1 0 Spring開始為眾多開發(fā)人員熟悉 17 1 2Spring的由來 曾經(jīng)使用過EJB開發(fā)J2EE應(yīng)用的人 一定知道 在EJB開始的學(xué)習(xí)和應(yīng)用非常的艱苦 很多東西都不能一下子就很容易的理解 EJB要嚴(yán)格地繼承各種不同類型的接口 類似的或者重復(fù)的代碼大量存在 而配置也是復(fù)雜和單調(diào) 同樣使用JNDI進(jìn)行對象查找的代碼也是單調(diào)而枯燥 雖然有一些開發(fā)工作隨著xdoclet的出現(xiàn) 而有所緩解 但是學(xué)習(xí)EJB的高昂代價 和極低的開發(fā)效率 極高的資源消耗 都造成了EJB的使用困難 而Spring出現(xiàn)的初衷就是為了解決類似的這些問題 17 1 3Spring2 5帶來的新特性 2007年底Spring發(fā)布了最新的2 5版本 本書也是基于此版本來講述 新版本有以下新特性 全面支持java6和javaEE5 JDBC4 0 JTA1 1 JavaMail1 4 JAX WS2 0等 全特性的注釋驅(qū)動依賴注入 包括對限定詞的支持 支持基于classpath的組件掃描 自動偵測有注釋的類 支持AspectJ切點表達(dá)式中包含beanname切點元素 內(nèi)置AspectJ加載時編織 基于LoadTimeWeaver提取 更多的XML配置文件的名字空間支持 比如context和jms等 最大程度提高編寫的方便性 17 1 3Spring2 5帶來的新特性 全面修訂集成測試框架 支持JUnit4和TestNG 新的基于注釋的ServletMVC和PortletMVC控制器風(fēng)格配置 擴(kuò)展SimpleJdbcTemplate功能 支持命名的參數(shù)等 官方認(rèn)可的Websphere支持 支持WebSphere6UOWManager機(jī)制 Spring框架的jar文件 兼容OSGi綁定 并能直接使用 SpringApplicationContext可被部署為JCARAR文件 用于非主導(dǎo)應(yīng)用模塊 JCA1 5消息終端管理 用于Spring管理的JMS和CCI消息監(jiān)聽器 有重要價值的特性為 基于注釋的MVC控制器風(fēng)格 JAX WS支持和TestNG支持 17 2Spring的基本概念 本節(jié)將介紹Spring的一些名詞解釋和Spring的基本 是讀者對Spring有一個大致的了解 17 2 1Spring的組成結(jié)構(gòu) Spring框架包含許多特性 并被很好地組織在下圖所示的七個模塊中 解釋一下圖中的各個模塊 核心容器 Spring上下文 SpringAOP SpringDAO SpringORM SpringWeb模塊 SpringMVC框架 Spring框架的功能可以用在任何J2EE服務(wù)器中 大多數(shù)功能也適用于不受管理的環(huán)境 Spring的核心要點是 支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對象 毫無疑問 這樣的對象可以在不同J2EE環(huán)境 Web或EJB 獨立應(yīng)用程序 測試環(huán)境之間重用 17 2 2什么是IoC Spring包括兩個重要的概念 IoC InversionofControl 中文譯為控制反轉(zhuǎn)也可以叫做DI DependencyInjection 依賴注入 還有一個是AOP AspectOrientedProgramming 面向方面的編程 IOC及AOP雖然不是Spring首創(chuàng) 然而其在這兩塊都是做得很不錯的 應(yīng)該說整個Spring框架就是圍繞著其IOC實現(xiàn)及AOP實現(xiàn)架設(shè)起來的 控制反轉(zhuǎn)模式的基本概念是 不直接創(chuàng)建對象 但是描述創(chuàng)建它們的方式 在代碼中不直接與對象和服務(wù)連接 但在配置文件中描述哪一個組件需要哪一項服務(wù) 容器 在Spring框架中是IoC容器 負(fù)責(zé)將這些聯(lián)系在一起 17 2 3什么是AOP AOP技術(shù)的誕生并不算晚 早在1990年開始 來自XeroxPaloAltoResearchLab 即PARC 的研究人員就對面向?qū)ο笏枷氲木窒扌赃M(jìn)行了分析 他們研究出了一種新的編程思想 借助這一思想或許可以通過減少代碼重復(fù)模塊從而幫助開發(fā)人員提高工作效率 隨著研究的逐漸深入 AOP也逐漸發(fā)展成一套完整的程序設(shè)計思想 各種應(yīng)用AOP的技術(shù)也應(yīng)運而生 17 3為什么要使用Spring 正如本章一開始就提到Spring是為J2EE應(yīng)用程序開發(fā)提供集成的框架 作用是把需要的功能集成起來 那么當(dāng)前集成框架很多 國內(nèi)也有不少很有針對性的集成框架 如 灰狐 系列產(chǎn)品 Jdon等等為何選用Spring呢 17 3 1何謂輕量級 Lightweight 所謂 輕量級 是相對于 重量級 來講的 在Spring出現(xiàn)之前 企業(yè)級開發(fā)一般都采用EJB 因為它提供的事務(wù)管理 聲明式事務(wù)支持 持久化 分布計算等等都 簡化 了企業(yè)級應(yīng)用的開發(fā) 這里的 簡化 打了雙引號 因為這是相對的 重量級容器是一種入侵式的 也就是說要用EJB提供的功能就必須在代碼中體現(xiàn)出來使用的是EJB 比如繼承一個接口 聲明一個成員變量 這樣就把代碼綁定在EJB技術(shù)上了 而且EJB需要JBOSS這樣的容器支持 所以稱之為 重量級 17 3 2Spring帶來了什么 即使擁有良好的工具和優(yōu)秀技術(shù) 應(yīng)用軟件開發(fā)也是困難重重 應(yīng)用開發(fā)往往牽扯到方方面面 每件事情都難以控制 而且 開發(fā)周期也很難把握 除非它的確是一個重量級的復(fù)雜應(yīng)用 倒也有情可原 Spring提供了一種輕量級的解決方案 用于建立 快裝式企業(yè)應(yīng)用 在此基礎(chǔ)上 Spring還提供了包括聲明式事務(wù)管理 RMI或WebServices遠(yuǎn)程訪問業(yè)務(wù)邏輯 以及可以多種方法進(jìn)行的持久化數(shù)據(jù)庫地解決方案 另外 Spring還有一個全功能的MVC框架 并能透明的把AOP集成到軟件中去 17 3 3Spring的優(yōu)勢 Spring的興起和流行是有其原因的 Spring的核心在檔案容量上只有不到1MB的大小 而使用Spring核心所需要的資源也是很小的 而Spring是個非侵入性 Nonintrusive 框架 它的目的之一 是讓應(yīng)用程式不感受到框架的存在 減低應(yīng)用程式從框架移植時的負(fù)擔(dān) 歸納起來Spring有以下特點 1 Spring是一個分層構(gòu)架 意思是可以選擇只用它的一部分 而不影響其他 它的構(gòu)架體系是內(nèi)部相容的 所以 將使學(xué)習(xí)曲線大大降低 例如 可以選擇只用Spring的JDBC單一應(yīng)用或者用Spring管理業(yè)務(wù)對象 2 Spring可以有效的組織中間層對象 無論是否選擇了EJB Spring關(guān)心的是那些如果選擇Spring或者其他的使用特定的J2EEAPIs的框架而留給自己完成的部件 17 3 3Spring的優(yōu)勢 3 Spring可以消除在許多projects中出現(xiàn)的Singlton的大量使用 主要的問題是 減弱了測試能力和面向?qū)ο?4 Spring可以消除規(guī)定多樣的定制屬性文件的需要 用一致的配置操作貫穿整個應(yīng)用和項目 多樣的屬性健或者系統(tǒng)屬性尋找使用戶不得不去讀Javadoc或者甚至是源代碼 然而 Spring可以使用戶非常簡單地看到這些class的JavaBean的屬性 倒置控制的用法 下面介紹 可以幫助完成簡化 5 Spring可以使良好的編程習(xí)慣更容易培養(yǎng) 利用接口代替classes減弱編程成本 降至最小 Spring的設(shè)計使依靠很少的APIs建立應(yīng)用成為可能 在Spring應(yīng)用中的許多業(yè)務(wù)對象根本不要依靠Spring 利用Spring建立的應(yīng)用使單元測試變得非常簡單 17 3 3Spring的優(yōu)勢 6 Spring是使用EJB成為一個選擇 優(yōu)于成為決定性的應(yīng)用構(gòu)架 可以選擇作為POJOs或者localEJBs擴(kuò)展業(yè)務(wù)借口 而不影響調(diào)用代碼 7 Spring可以解決沒有EJB的許多的問題 Spring可以提供適應(yīng)許多web應(yīng)用的EJB的替換方案 例如 Spring可以借用AOP提供聲明事務(wù)管理 在不用EJB容器的情況下 如果只需要工作在單個的數(shù)據(jù)庫上面 甚至不用JTA的支持 8 Spring提供了一致的數(shù)據(jù)訪問框架 無論用JDBC或者像Hibernate一樣的O Rmapping產(chǎn)品 17 3 4其他輕量級容器 目前 輕量級容器在opensource范圍已經(jīng)得到了廣泛的認(rèn)可 而且 作為下一代J2EE構(gòu)架的基礎(chǔ)有著無法比擬的優(yōu)勢 當(dāng)前 已存在的輕量級容器框架中 有絕大部分來自opensource社群 除了Spring以外還有很多 如下列出的 PicoContainer 主頁http www picocontainer orgAvalonApacheSoftwareLicense 主頁http avalon apache orgNanoContainer 主頁http www nanocontainer orgPeapod 主頁http www peapod org 另外還有前面提到的兩款國內(nèi)開發(fā)的框架也有一定用戶群JFox 主頁http www
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州建設(shè)職業(yè)技術(shù)學(xué)院《創(chuàng)新創(chuàng)業(yè)教育實踐含法律診所》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年漢中職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫(500題)含答案解析
- 2024水利局行政處罰委托第三方執(zhí)行合同3篇
- 二建市政工程實務(wù)-二級建造師《市政公用工程管理與實務(wù)》??荚嚲?337
- 2024年國家電網(wǎng)招聘之財務(wù)會計類題庫附答案(a卷)
- 湖北省黃岡市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版綜合練習(xí)(下學(xué)期)試卷及答案
- 人教版初中七年級下冊歷史與社會 5.3.2 東部和西部差異顯著 說課稿
- 2025年音樂教研組工作計劃
- 2025年春科學(xué)教研組教研計劃
- 2024年公務(wù)員考試河池市《行政職業(yè)能力測驗》全真模擬試題含解析
- 2024年道路清障拖車服務(wù)合同協(xié)議3篇
- 2025年1月八省聯(lián)考河南新高考物理試卷真題(含答案詳解)
- 建設(shè)工程檢試驗工作管理實施指引
- 軟件租賃合同范例
- 匯川技術(shù)在線測評題及答案
- 廣東省廣州市2023-2024學(xué)年高一上學(xué)期期末物理試卷(含答案)
- 2024年四川省公務(wù)員錄用考試《行測》真題及答案解析
- 銀行內(nèi)部管理檔案制度
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 電氣自動化年終總結(jié)
- 第2章-變壓器的基本作用原理與理論分析
評論
0/150
提交評論