彭海鈴
摘要:SSH框架集,是現在大多數軟件設計過程中都會使用的一種框架集。而這種框架是基于MVC的開發(fā),且MVC模式已經成為現代J2EE開發(fā)中的一種常用模式,且受到越來越多JSP、PHP等開發(fā)者的歡迎。本文重點闡述了關于SSH框架集的介紹,為相關工作人員提供參考。
關鍵詞:SSH框架集;MVC開發(fā);Spring
SSH框架集,是現在大多數軟件設計過程中都會使用的一種框架集。而這種框架是基于MVC的開發(fā),且MVC模式已經成為現代J2EE開發(fā)中的一種常用模式,且受到越來越多JSP、PHP等開發(fā)者的歡迎。
MVC模式,分別是模型(Model)、視圖(view)、控制器(Controller)。應用程序被分割成這三大部分之后,各自處理自己的任務。視圖層通過提取用戶的輸入信息,提交到控制器之后,控制器根據某種選擇來決定這個請求交由給模型層來處理,模型層根據業(yè)務邏輯的代碼處理用戶請求并返回數據,并最終用視圖層展示給用戶。
而前面提到的SSH框架集,就是很好的對應了MVC模式的開發(fā)使用。這種Struts2+Hibernate+Spring的三大框架整合,契合著MVC模式的三層對象。其中Struts對應著前臺的控制層,而Spring則負責實體bean的業(yè)務邏輯處理,至于Hibernate則是負責數據庫的交接以及使用Dao接口來完成操作。
Struts2,以WebWork為核心,采用攔截器的機制來處理用戶的請求從而使得業(yè)務邏輯處理與Servlet脫離。相比較原生態(tài)的Strutsl或JSP+Servlet的開發(fā)模式,Struts2通過Action和攔截器來處理用戶需求,從而使得JSP和Servlet解耦,擺脫了以往難于測試的場面。通過初始化Servlet容器,加載web.xml,調用FilterDispatcher來詢問ActionMapper來決定調用哪個Action,通過調用Action來決定這個請求對應哪個業(yè)務處理邏輯。
Spring,使用基本的實體JavaBean來完成以前只能用EJB完成的事情。而其核心則是控制反轉(10C)和面向切面編程(AOP)。使用Spring,意味著一個對象的創(chuàng)建再也不是自己new出來的,而是全權交給了IOC容器去實例化。與此同時,Spring通過采用依賴注入(DI)的方式,通過屬性的Setter和Getter方法來注入這個對象的屬性,這樣的好處就是不完全依賴于容器的API,且查詢依賴與代碼實現了解耦。而AOP,則是將應用的業(yè)務邏輯和系統(tǒng)級服務(例如事務)分離開來,進行內聚性的開發(fā),應用對象只負責完成業(yè)務邏輯而不關心日志或者事務的處理。
而Hibernate,則是負責了跟數據庫的交接。通過持久化數據對象,進行對象關系的映射,并以對象的角度來訪問數據庫。通過封裝JDBC,使得開發(fā)人員可以以面向對象編程的思想來操控數據庫,從而擺脫了以往使用JDBC編程時的“死板”操作。通過hibernate.cfg.xml文件來取代以往的JDBC連接數據庫的一大串代碼,通過XXX(實體Bean的類名).hbm.xml文件來與數據庫的具體表進行映射。并且Hibernate有自己的HQL語句,與數據庫的SOL語句相似,但不同的是HQL語句在面向對象編程的角度上,通過Session的createQuery方法創(chuàng)建戶一個query對象,由這個對象來完成對數據庫的增刪改查等操作。通過Struts2中Action的返回值,來調用Dao層中的業(yè)務處理。
SSH框架集,已經成為越來越多開發(fā)者的首選框架。這種分層架構體系的思想,規(guī)劃著各個層次之間應該做的事情,從而使得塊與塊之間不再混淆。這樣不僅實現了視圖,控制器和模型的徹底分離,還實現了業(yè)務邏輯與持久層的分離。這樣的好處就是無論前臺做了什么改動,后臺只需要小小的變化,并不會造成影響,大大提高了系統(tǒng)的復用性以及開發(fā)效率。
(作者單位:北京理工大學珠海學院)endprint