複製鏈接
請複製以下鏈接發送給好友

ssh

(MVC軟件開發模式)

鎖定
SSH(Struts,Spring,Hibernate或SpringMVC,Spring,Hibernate) Struts進行流程控制Spring進行業務流轉,Hibernate進行數據庫操作封裝
外文名
Struts,Spring,Hibernate
簡    寫
ssh
類    別
MVC軟件開發模式
Struts版本
Struts1和Struts2

ssh簡介

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

ssh三大框架

Struts
Struts與SSH框架同樣具有開源性,合理恰當的使用Struts技術可以在一定程度上減少基於MVC模型的Web應用系統的開發時間,從而有效控制系統開發成本。事實上,絕大多數程序員在使用Servlets和JSP的可擴展的應用時,已經將Struts框架技術作為系統開發的標準。
Struts技術基於MVC框架,Struts的實現依賴Servlet和JSP實現。EJB和JavaBean兩個組件是Struts框架業務功能實現的基礎部件;Action和ActionServlet部件是框架實現控制功能的重要部件;視圖部分則是由若干存在內在聯繫的.JSP文件有機構成,來實現系統功能。 [2] 
Spring
Spring在整個系統體系中提供兩種框架:一種是面向方面編程(AOP)容器框架,另外一種是輕量級的反向控制。
Spring的核心部分是輕量級控制反轉(Inversion of Control,簡稱IoC)容器。通過外部的配置文件反過來調用應用程序來替代原有應用程序調用的控制功能,是控制反轉的基本思想。在框架中進行控制功能的創建工作就實現了輕量級控制反轉,這樣就能使控制功能的編寫從應用程序的編寫中分離出來。在使用組件調用容器時,在框架中的控制功能創建中只需要給出調用組件所用到的對象。典型的輕量級控制反轉工作過程如下:首先創建程序中以後所用到的所有對象,並進行對象屬性設置,對相關的屬性和慣性進行連接配置,最後再確定調用的方法和時間點即可。
Spring架構的反轉控制提供了應用場景和複雜程度不同的兩種注入方式:構造器注入和Setter依賴注入(Dependency Injection)。Spring支持在實際開發中應用的最為廣泛方法注入Setter(Setter Injection)方法,這種方法使用起來更加直觀、方便。 [2] 
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幾乎是透明地運行。 [2] 

ssh結構層次

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

ssh優勢

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框架能夠大大簡化系統開發的複雜度,縮短系統開發時間。 [2] 
參考資料
  • 1.    杜昕娉,王薇,曹晨.SSH框架的用處與前景[J].湖北農機化,2019,(4):57.
  • 2.    杜素芳.SSH 框架技術分析[J].科技廣場,2014,(5):76-78.
  • 3.    李建松.基於SSH框架的設備運行維護系統的設計與實現[J].數字化用户,2019,25(4):44.