ssh(MVC軟體開發模式)

ssh(MVC軟體開發模式)

SSH(Struts,Spring,Hibernate或SpringMVC,Spring,Hibernate) Struts進行流程控制Spring進行業務流轉,Hibernate進行資料庫操作封裝

基本介紹

  • 外文名:Struts,Spring,Hibernate
  • 簡寫:ssh
  • 類別:MVC軟體開發模式
  • Struts版本:Struts1和Struts2
概述,三大框架,Struts,Spring,Hibernate,結構層次,優勢,

概述

SSH框架是Struts、Spring、Hibernate的一個合成框架,目前市場上比較流行的框架中也有它的身影。Struts是一個基於MVC模式的套用框架,如果學過Servlet。那么其本質和Servlet差不多,MVC模式主要包括模型(Module),視圖(View),控制器(Controller),而Struts主要作為控制器來建立模型和視圖的數據互動。本文介紹的Struts以Struts2為主。它通過攔截器處理客戶的各種請求。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情,Spring的核-fl,主要控制翻轉(IOC)和面向切面(AOP),簡單的說Spring是一種分層的輕量級開源框架。Spring更像是一個容器,將所有配置的Struts和Hibernate中的東西都放置進來,只要能夠做好配置,它就會找到相應的位置,進行處理。Hibernate是一個開原始碼的對象映射框架,是根據JDBC技術基礎衍生而來的,它將直接操作原來的資料庫變為直接運算元據表後生成的Java類,實現了對象編程思維來操縱資料庫。SSH框架中的各種技術相互協調、配合。實現了這一強大的框架。

三大框架

Struts

Struts與SSH框架同樣具有開源性,合理恰當的使用Struts技術可以在一定程度上減少基於MVC模型的Web套用系統的開發時間,從而有效控制系統開發成本。事實上,絕大多數程式設計師在使用Servlets和JSP的可擴展的套用時,已經將Struts框架技術作為系統開發的標準。
Struts技術基於MVC框架,Struts的實現依賴Servlet和JSP實現。EJB和JavaBean兩個組件是Struts框架業務功能實現的基礎部件;Action和ActionServlet部件是框架實現控制功能的重要部件;視圖部分則是由若干存在內在聯繫的.JSP檔案有機構成,來實現系統功能。

Spring

Spring在整個系統體系中提供兩種框架:一種是面向方面編程(AOP)容器框架,另外一種是輕量級的反向控制。
Spring的核心部分是輕量級控制反轉(Inversion of Control,簡稱IoC)容器。通過外部的配置檔案反過來調用應用程式來替代原有應用程式調用的控制功能,是控制反轉的基本思想。在框架中進行控制功能的創建工作就實現了輕量級控制反轉,這樣就能使控制功能的編寫從應用程式的編寫中分離出來。在使用組件調用容器時,在框架中的控制功能創建中只需要給出調用組件所用到的對象。典型的輕量級控制反轉工作過程如下:首先創建程式中以後所用到的所有對象,並進行對象屬性設定,對相關的屬性和慣性進行連線配置,最後再確定調用的方法和時間點即可。
Spring架構的反轉控制提供了套用場景和複雜程度不同的兩種注入方式:構造器注入和Setter依賴注入(Dependency Injection)。Spring支持在實際開發中套用的最為廣泛方法注入Setter(Setter Injection)方法,這種方法使用起來更加直觀、方便。

Hibernate

Hibernate是一個開放原始碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程式設計師可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以套用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web套用中使用,最具革命意義的是,Hibernate可以在套用EJB的J2EE架構中取代CMP,完成數據持久化的重任。
Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心接口分別加以介紹。
在面向對象程式設計中,關係資料庫中的表間關係與對象間關係的匹配沒有有效的轉換來完成匹配,Hibernate的出現可以很好地完成二者之間的關係匹配問題。
Hibernate可以將對象間關係按照一定的邏輯與資料庫中表之間的關係進行高耦合度的匹配,這種轉換由Hibernate自動進行。使用Hibernate可以減少原來面向對象程式設計時大量的程式與資料庫之間SQL的轉換,有效提高開發效率。Hibernate是Java平台上高效的ORM映射框架。由於Hibernate使用了反射和運行時位元組碼生成技術,所以對於最終用戶而言,Hibernate幾乎是透明地運行。

結構層次

SSH是Struts、Spring和Hibernate的一個集成框架,是上述三個框架結合在一起的一種用於構建靈活、易於擴展的開發手段。基於SSH框架的軟體系統從職能上分大致可以分為三層:表示層、業務邏輯層、數據持久層。採用上述開發模型,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與數據持久層的分離。這樣無論前端如何變化,邏輯層只需很少的改動,並且資料庫的變化也不會對前端有所影響,大大提高了系統的可復用性,提高了開發效率。
(一)表示層
表示層主要涉及Struts的功能,在這一層,首先通過JSP頁面實現互動界面,負責傳送用戶請求和接收回響,然後Struts根據配置檔案將接收到的用戶請求委派給相應的Action處理。
(二)業務邏輯層
業務層主要涉及Spring的功能,在這一層,管理服務組件負責向Struts配置好的對應Action提供業務模型,該組件的對象數據處理組件完成業務邏輯[3],並提供事務處理等容器組件以提升系統性能和保證數據的完整性。
(三)數據持久層
持久層主要涉及Hibernate的功能,Hibernate實現了數據持久化功能,使得程式設計師可以通過面向對象地編程思維來運算元據庫。在這一層中,依賴於Hibernate的對象化映射和資料庫互動,處理Spring中的DAO組件請求的數據,並返回處理結果。

優勢

SSH框架是基於傳統J2EE框架的新技術,SSH框架繼承了J2EE的分層架構模式,二者的不同之處僅在於層與層之間的實現方法。當J2EE框架和SSH架構完成相同的運算任務時,SSH框架消耗的系統資源較少。
SSH框架在業務對象的平台專用性上沒有特殊的限定要求,在SSH框架中業務邏輯的實現通過普通的Java對象即可完成。SSH組合框架技術優勢體現在四個方面:
(1)分離了Java代碼和HTML代碼,降低了對開發人員要求的複合度。
(2)系統的層與層之間的工作相對獨立,代碼耦合度低。
(3)即使脫離了Spring環境的AOP機制,也不會妨礙AOP實現業務的功能。
(4)與SSH配合使用的Hibernate等跨平台技術開源性極強,促使了SSH框架的飛速發展。
SSH的技術優勢使得採用SSH框架技術開發的系統具備了很強的可拓展性和可移植性。同時,採用開源的SSH框架能夠大大簡化系統開發的複雜度,縮短系統開發時間。

相關詞條

熱門詞條

聯絡我們