

Spring應用
- 期刊名字:電腦知識與技術(shù)
- 文件大?。?87kb
- 論文作者:王安慶
- 作者單位:文思創(chuàng )新軟件技術(shù)有限公司上海分公司
- 更新時(shí)間:2020-06-12
- 下載次數:次
IsN1009-3044E-mail:xsl@cccc.net.cnComputer Knowledge and Technology電腦知識與技術(shù)http://www.dnzs.net.cnVol7. No 26. September 2011Tel:+86-551-56909635690964Spring應用王安慶(文思創(chuàng )新軟件技術(shù)有限公司上海分公司,上海201112)摘要: Spring為企業(yè)應用開(kāi)發(fā)提供了一個(gè)輕量級的解決方案,它是一個(gè)優(yōu)秀的Wb架構。該文簡(jiǎn)要介紹了 Spring的概況和優(yōu)勢,重點(diǎn)介紹了 Spring的應用,其中包括 Spring的依賴(lài)注入核心機制、面向切面編程、事物管理以及 Spring在Wh中的MVC應用。關(guān)鍵詞: Spring;依賴(lài)注入;AOP;Mvc中圖分類(lèi)號:TP311文獻標識碼:A文章編號:1009-3044(2011)26-6453021 Spring的概述pring是為解決企業(yè)應用程序開(kāi)發(fā)復雜性而創(chuàng )建的減小了程序開(kāi)發(fā)的復雜度。 Spring不僅為開(kāi)發(fā)者提供了一個(gè)優(yōu)秀的框架也為開(kāi)發(fā)者提供了良好的設計和大量可供參考的源代碼。它不僅可以應用于服務(wù)器端的開(kāi)發(fā),也可應用于客戶(hù)端的開(kāi)發(fā)。 Spring也可以作為一個(gè)中間件,它可以獨立于各種服務(wù)器,甚至不需要應用服務(wù)器的支持,也能提供服務(wù)器的功能,如聲明式事物。 Spring簡(jiǎn)單化了JDBC的使用,它可以用來(lái)管理所有的業(yè)務(wù)對象,它的設計從底部幫助你編寫(xiě)易于測試的代碼,這就大大提高了程序員開(kāi)發(fā)軟件的效率。 Spring是對JEE思想進(jìn)一步改造和擴充使其發(fā)展成更開(kāi)放清晰、全面高效的開(kāi)發(fā)框架2 Spring的優(yōu)勢Spring所耗費的系統資源開(kāi)銷(xiāo)是比較少的,它的很多優(yōu)勢是值得肯定。 Spring的優(yōu)勢在于以下幾個(gè)方面:低侵人式設計,代碼的污染率低。它可以獨立于各種應用服務(wù)器。 Spring的依賴(lài)注入機制降低了業(yè)務(wù)對象替換的復雜性。 Spring的高度開(kāi)放性,并不強制應用完全依賴(lài)于 Spring.開(kāi)發(fā)者可自由選用 Spring框架的部分或全部。 Spring可以和其他框架良好的結合,如 hibernate, struts等,使得應用程序開(kāi)發(fā)吏容易3 Spring的應用31 Spring中的基本設計思想Spring實(shí)現了兩種基本設計模式,即工廠(chǎng)模式和單態(tài)模式。Spring容器是實(shí)例化和管理所有bean的工廠(chǎng)。 Spring使調用者只關(guān)心被調用者必須滿(mǎn)足的某種規則接口),而不必關(guān)心實(shí)例的具體實(shí)現過(guò)程,具體的實(shí)現過(guò)程由ban工廠(chǎng)完成。調用者只關(guān)心工廠(chǎng)實(shí)例實(shí)現某個(gè)接口,是否可供自己正常調用。該模式提供各對象之間清晰的角色劃分,降低程序的耦合。Spring默認所有bean設置成單態(tài)模式即對所有id的ban的請求都將返回同一個(gè)共享實(shí)例。單態(tài)模式大大降低Java對象創(chuàng )建和銷(xiāo)毀時(shí)的系統開(kāi)銷(xiāo)。單態(tài)模式設計可以保證只有一個(gè)實(shí)例,并提供實(shí)例的全局訪(fǎng)問(wèn)點(diǎn)。比如,數據庫引擎訪(fǎng)問(wèn)點(diǎn)只能有一個(gè)。使用單態(tài)模式可避免Java類(lèi)的頻繁實(shí)例化,讓相同類(lèi)的全部實(shí)例共享同一內存區。32 Spring的核心機制趣 Spring框架提供了很多功能這些功能能夠很好的組合在一起就是因為它使用了控制反轉技術(shù)??刂品崔D就是由容器來(lái)控制中各個(gè)類(lèi)之間的關(guān)系,控制權由代碼轉到外部容器而不是傳統中的直接有程序代碼操控。原先的程序設計中,我們通常是通過(guò)創(chuàng )建一個(gè)類(lèi)對象來(lái)調用這個(gè)類(lèi)中的方法,這樣在程序中就有大量創(chuàng )建類(lèi)對象的代碼。這些代碼要不僅需要程序員手工編寫(xiě),也不容易管理。 Spring的控制反轉技術(shù)就很好的解決了這個(gè)問(wèn)題。所有的對象全部交給 Spring容器管理,當程序需要對應的類(lèi)對象時(shí),我們就直接去 Spring容器中獲取。當采用控制反轉技術(shù)時(shí),對象就會(huì )將對某些特性及方面的控制轉到框架或環(huán)境。對象創(chuàng )建和對象定位的職責從類(lèi)轉移到框架,這種依賴(lài)關(guān)系就是依賴(lài)注入。依賴(lài)注入是控制反轉一個(gè)具體實(shí)例。依賴(lài)注人是 Spring的核心機制。依賴(lài)注入讓bean和bean之間以配置文件組織在一起,而不是以硬編碼的方式耦合在一起。依賴(lài)注入的目標是為了提升組件重用的概率,為系統搭建一個(gè)靈活、可擴展的平臺。33 Spring對AOP的支持AOP(Aspect Oriented Programming),即面向切面的程序設計,也稱(chēng)為面向方面的程序設計。 Spring中提供內置AOP支持。AOP為開(kāi)發(fā)者提供了一種基于關(guān)注點(diǎn)進(jìn)行軟件設計的新思想,是對0oP( Object Oriented Programming)面向對象編程模型的一種擴展。利用AOP編程,開(kāi)發(fā)人員可以將復雜的系統看作多個(gè)關(guān)注點(diǎn)組合在一起實(shí)現的。比如:一個(gè)系統通常包括業(yè)務(wù)邏輯、日志、安全等方面的關(guān)注點(diǎn),開(kāi)發(fā)人員可以分別實(shí)現系統所需要的業(yè)務(wù)邏輯,最后將這些實(shí)現組合在一起,構建完整的系統。中國煤化工CNMHG收稿日期:2011-08-01作者簡(jiǎn)介:王安慶(1982-),男,河南人,主要從事軟件工程師工作。謝媛媛.:.··x軟件計開(kāi)發(fā)··6453Computer Knowledge and Technology電腦知識與技術(shù)第7卷第26期(2011年9月)簡(jiǎn)單的說(shuō),AOP將那些與業(yè)務(wù)無(wú)關(guān)卻為業(yè)務(wù)模塊所共同調用的邏輯或責任封裝起來(lái)便于減少系統的重復代碼降低模塊間的耦合度,方便將來(lái)的可維護性和可操作性。比如,日志散布在所有對象的層次中,而它卻與散布對象的核心功能無(wú)關(guān)。34 Spring的事務(wù)管理Spring封裝了所有對事務(wù)處理的功能包括事務(wù)的回滾、提交等。這大大減少了程序員的代碼量,也有利于事務(wù)的管理。讀數據不需要為其指定事務(wù),而數據的插入修改刪除就需要事務(wù)管理了。對于依賴(lài)容器的參數化事務(wù)管理 Spring起到很大的作用。 Spring的事務(wù)管理是基于動(dòng)態(tài)AOP,AOP技術(shù)實(shí)現的事務(wù)管理實(shí)質(zhì)就是:在方法執行前后進(jìn)行攔截,然后在目標方法開(kāi)始之前創(chuàng )建并加人事務(wù)管理,執行完目標方法后根據執行情況進(jìn)行提交或回滾事務(wù)。 Spring可以將 Java Class納入事務(wù)管理。通過(guò)Spring,我們實(shí)現簡(jiǎn)單的事務(wù)配置,就可以為某個(gè)類(lèi)的某個(gè)方法制定事務(wù)管理機制。 Spring事務(wù)管理并不依賴(lài)特定的事務(wù)資源。 Spring的事務(wù)管理支持JDBC等多種事務(wù)資源,這為我們提供了多種選擇。3 5 Spring Web中的MVc應用MVC是 Model-vew- Controller(模型-視圖-控制器)的簡(jiǎn)稱(chēng)。它把一個(gè)應用的輸入、處理、輸出流程按照 Model, view controller的方式分成三層(模型層、視圖層控制器層)。視圖用來(lái)顯示和用戶(hù)交互的貞面模型用來(lái)表示企業(yè)數據和業(yè)務(wù)邏輯控制器是負責頁(yè)面的跳轉,并且從客戶(hù)端接受請求執行相應的業(yè)務(wù)邏輯然后把響應結果輸出到頁(yè)面上。MVC的好處就是將業(yè)務(wù)層和視圖層分離,三層各司其職,一旦那一層發(fā)生變化,只需要修改相應層中的代碼。Spring框架提供了構建Web應用程序的全功能MvC模塊。 Spring的 Web mvc框架是圍繞分發(fā)器 DispatcherServlet設計的。Spring MVC會(huì )把所有的請求都提交給 DispatcherServlet,當 DispatcherServlet接收到請求時(shí),它會(huì )查找適當的處理程序來(lái)處理請求。處理程序映射 Handler Mapping負責為請求返回一個(gè)適當的處理程序。 DispatcherServlet查詢(xún)一個(gè)或多個(gè)處理程序映射Handler Mapping, HandlerMapping將web請求映射到正確的處理程序( handler),也就是找到處理請求的控制器 Controller( Spring MVC中用來(lái)處理web請求最典型的處理程序就是控制器 Controller)) DispatcherServlet:將請求提交到目標控制器 Controller, Controller進(jìn)行業(yè)務(wù)處理后,會(huì )返回一↑ ModelAndview(模型和視圖的基本類(lèi))。 DispatcherServlet查詢(xún)一個(gè)或多↑ View Resolver視圖解析器,找到 ModelAndⅤiew對象指定的視圖對象。視圖對象負責將模型屬性返回給客戶(hù)端,視圖對象的任務(wù)就是將模型屬性展示給用戶(hù)。MvC實(shí)現的可擴展性很強, Spring框架可以很容易的和 Struts, Hibernate結合起來(lái) Spring充當了管理容器的角色。 Hibernate用來(lái)做持久層,方便了與數據庫的交互。 Struts用來(lái)做應用層,負責調用業(yè)務(wù)邏輯層。 Spring框架就可以管理 Struts中的 Action對象和業(yè)務(wù)邏輯類(lèi),實(shí)現了層與層之間的分離程序的執行效率就更高維護更方便。4小結Spring是一個(gè)開(kāi)源的項目,它廣泛應用于大中型項目。 Spring提供了一個(gè)靈活和可擴展的MVC實(shí)現,它在依賴(lài)注入、事務(wù)管理等方面都很優(yōu)秀。 Spring在項目中的應用,使應用程序更簡(jiǎn)單,更容易測試,更容易管理,有利于為開(kāi)發(fā)者提供簡(jiǎn)單、有效的解決方案參考文獻:[]李剛 Spring2.0寶典M]北京:電子工業(yè)出版社,200[2]Lads, Davison D, Devijver S,etl深人解析 Spring MVC與 Web FlowM]北京:人民郵電出版社2008[3 Tate B A, Gehtland J. Spring程序高手秘笈[M南京:東南大學(xué)出版社,2007.中國煤化工CNMHG645分數艙件量計開(kāi)…本欄目任編:謝媛媛
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-06-12
-
生物質(zhì)能的應用工程 2020-06-12
-
我國甲醇工業(yè)現狀 2020-06-12
-
JB/T 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規程 2020-06-12
-
石油化工設備腐蝕與防護參考書(shū)十本免費下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應用情況簡(jiǎn)介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進(jìn)展 2020-06-12
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進(jìn)展 2020-06-12