您好, 訪客   登錄/注冊

基于Spring的Web開發

來源:用戶上傳      作者: 陸浩言

  摘 要: Spring是一個為了解決企業應用程序開發復雜性而創建的開源框架,提供了一種有效的方式來建立和組織J2EE應用程序。本文首先簡單介紹了Spring和Spring MVC框架,然后介紹了用Spring MVC開發應用程序的過程。
  關鍵詞:Spring MVC 框架 Web開發
  
  一、引言
  在軟件開發中出現過各種各樣的框架,開源軟件的興起,使得各種各樣的框架紛紛出現。例如,Apache組織下就擁有諸多的框架類產品??蚣芫褪且唤M協同工作的類,它們為特定類型的軟件構筑了一個可重用的設計。然而,傳統的框架使得應用程序組件過于依賴于框架中的類,這種耦合度的提高降低了組件的復用性。Spring框架的出現,使得組件之間更松散的耦合成為了可能。
  二、Spring簡介
  Spring框架由一個容器,一個配置和組織組件的框架,和一組內置的為事務、持久化和Web用戶接口提供的服務組成。作為一種輕量級的J2EE框架,Spring提供了一種有效的方式來建立和組織J2EE應用程序。
  Spring IoC,借助于依賴注入設計模式,使得開發者不用理會對象自身的生命周期極其關系,而且能夠改善開發者對模式的使用。IoC(Inversion of Control;控制反轉),又稱DI(Dependency Injection;依賴注入),是面向對象領域新興的編程思想,也是Spring的精髓所在。簡單地說,IoC就是指程序之間的關系由容器來控制,而不是傳統實現中由程序代碼直接操控。這也就是所謂IoC的概念所在:控制權由應用代碼轉到外部容器,控制權的轉移,也就是所謂的反轉。IoC將控制創建的職責搬進了框架中,并把它從應用代碼脫離開來。當使用Spring的IoC容器時只需指出組件需要的對象,在運行時Spring的IoC容器會根據XML配置數據提供給它。
  Spring AOP,借助于Spring實現攔截器,開發者能夠實現以聲名方式使用企業級服務,比如安全性服務、事務服務。AOP合理地補充了OOP,借助于Spring AOP,開發者能夠高效地使用J2EE服務。
  Spring服務抽象,借助于各種J2EE API抽象,使得開發者能夠一致地使用J2EE技術,而不管具體是使用什么J2EE API,借助于Spring服務抽象,使代碼大大減少,滿足“更少代碼,更少BUG”的軟件設計原則。
  Spring IoC+Spring AOP+Spring服務抽象,一起形成Spring,這樣一個有機體,使得構建輕量級J2EE成為可能。
  三、Spring MVC簡介
  大部分Java應用都是Web應用,Spring框架提供了構建Web的框架。和眾多其它Web框架一樣,它基于MVC設計理念。此外,由于它采用了松散耦合可插拔組件結構,因此具有比其它MVC框架更多的擴展性和靈活性。
  Spring MVC框架圍繞DispatcherServlet這個核心展開,DispatcherServlet的作用是截獲請求并組織一系列組件共同完成請求的處理工作。
  Spring MVC是基于Model 2實現的技術框架,Model 2是經典的MVC(Model View Control)模型的Web應用變體,這個改變主要源于HTTP協議的無狀態性。Model 2的目的和MVC一樣,也是利用處理器分離模型、視圖和控制,達到不同技術層級間松散耦合的效果,提高系統靈活性、復用性和可維護性。在多數情況下,你可以將Model 2與MVC等同起來。
  四、用Spring MVC進行開發的處理過程
 ?。?)整個過程開始于客戶端發送一個HTTP請求。
 ?。?)Dispatcher Servlet接收這個請求后,并將請求的處理工作委托給具體的處理器(Handler),后者負責處理請求執行相應的業務邏輯。在這之前,Dispatcher Servlet必須能夠憑借請求信息(URL或請求參數等)按照某種機制找到請求對應的處理器,Dispatcher Servlet是通過垂詢Handler Mapping完成這一工作的。
 ?。?)當Dispatcher Servlet從Handler Mapping中得到當前請求對應的處理器后,它就將請求分派給這個處理器。處理器根據請求的信息執行相應的業務邏輯,一個設計良好的處理器應該通過調用Service層的業務對象完成業務處理。
  Spring提供了豐富的處理器類型,在真正處理業務邏輯前,有些處理器會事先執行兩項預處理工作:
  第一項:將HttpServletRequest請求參數綁定到一個POJO對象中;
  第二項:對綁定了請求參數的POJO對象進行數據合法性校驗;
 ?。?)處理器完成業務邏輯的處理后將返回一個Model And View給Dispatcher Servlet,Model And View包含了視圖邏輯名和渲染視圖時需要用到的模型數據對象。
 ?。?)由于Model and View中包含的是視圖邏輯名,DispatcherServlet必須知道這個邏輯名對應的真實視圖對象,這項視圖解析的工作通過調用ViewResolver來完成。
 ?。?)當得到真實的視圖對象后,DispatcherServlet將請求分派給這個View對象,由其完成Model數據的渲染工作。
 ?。?)最終客戶端得到返回的響應,這可能是一個普通的HTML頁面,也可能是一個Excel電子表格,甚至是一個PDF文檔等不一而足的視圖形式,Spring的視圖類型異常豐富和靈活。
  
  參考文獻:
 ?。?]王福強.Spring揭秘.人民郵電出版社,2009.
 ?。?]羅時飛.精通Spirng.電子工業出版社,2007.


轉載注明來源:http://www.hailuomaifang.com/9/view-967606.htm

?
99久久国产综合精麻豆