縱覽全域性——SSH
小鹹兒在開始進行SSH框架的專案之後,也沒有了解過SSH到底是什麼?
現在小鹹兒就和大家一起來認識一下SSH,讓我揭開她的神祕面紗。
➼顏值: |
SSH是struts+spring+hibernate的一個整合框架。重要的是區別於Secure Shell,這是一個安全外殼協議。這只是名字相同,但是樣貌不同,可千萬別認錯!!
接著說我們的SSH框架:整合SSH框架的系統從職責上分為四層:表示層、業務邏輯層、資料持久層和域模組層。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支援,Spring做管理,管理Struts和Hibernate。
➼才藝之琴: |
基本業務流程:在表示層中,首先通過JSP頁面實現互動介面,負責接收請求(Request)和傳送響應(Response),然後Struts根據配置檔案(struts-config.xml,不是固定的名稱)將ActionServlet接收到的Request委派給相應的Action處理。在業務層中,管理服務元件的Spring loc容器負責向Action提供業務模型(Model)元件和該元件的協作物件資料處理(DAO)元件完成業務邏輯,並提供事務處理、緩衝池等容器元件以提升系統性能和保證資料的完整性。而在持久層中,則依賴於Hibernate的物件化對映和資料庫互動,處理DAO元件請求的資料,並返回處理結果。
➼才藝之棋: |
Struts:Struts對Model,View和Controller都提供了對應的元件。
ActionServlet,這個類是Struts的核心控制器,負責攔截來自使用者的請求。
Model部分:由ActionForm和JavaBean組成,其中ActionForm用於將使用者的請求引數封裝成ActionForm物件,該物件被ActionServlet轉發給Action,Action根據ActionForm裡面的請求引數處理使用者的需求。
JavaBean封裝了底層的業務邏輯,包括資料庫訪問等。
View部分:採用JSP(或者HTML、PHP)實現
Controller元件:Controller元件由兩個部分組成——系統核心控制器,業務邏輯控制器
系統核心控制器,對應上邊的ActionServlet。該控制器繼承了HTTPServlet類,因此可以配置成標註的Servlet。該控制器負責攔截所有的Http請求,然後根據使用者請求決定是否要轉給業務邏輯控制器。
業務邏輯控制器,負責處理使用者請求,本身不具備處理能力,而是呼叫Model來完成處理,對應Action部分。
➼才藝之書: |
Spring:Spring是一個開源框架,它是為了解決企業應用開發的複雜性而建立的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。簡單來說:Spring是一個輕量級的控制反轉(loC)和麵向切面(AOP)的容器框架。
➼才藝之畫: |
Hibernate:Hibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝。
Hibernate的核心介面一共有5個:Session、SessionFactory、Transaction、Query和Configuartion。這5個核心介面在任何開發中都會用到。通過這些介面,不僅可以對持久化物件進行存取,還能夠進行事務控制。
Session介面:Session介面負責執行被持久化物件的CRUD操作(CRUD的任務是完成與資料庫的交流,包含了很多常見的SQL語句)。但需要注意的是Session物件是非執行緒安全的。同時,Hibernate的session不同於JSP應用中的HttpSession。這裡當使用session這個術語時,指的是hibernate中的session,而HTTPSession物件成為使用者session
SessionFactory介面:sessionfactory介面負責初始化Hibernate。充當資料儲存源的代理,負責建立session物件。
Configuration介面:Configuration負責配置並啟動hibernate,建立sessionfactory物件。在啟動過程中,首先定位對映文件位置、讀取配置,然後建立SessionFactory物件
Transaction介面:負責事務相關的操作
Query和Criteria介面:負責執行各種資料庫查詢。
➼總結: |
這次的總結是初步瞭解SSH框架之後,小鹹兒進行的總結,在許多方面的認知還很淺顯,如果有什麼問題可以和小鹹兒在評論區進行討論。