JavaWeb輕量級開發框架:關於SSH框架基礎概念的學習

SSH是JavaWeb輕量級框架開發中比較常用的框架,它是三大框架(Struts,Spring,Hibernate)的組合的簡稱,也是目前Java開發中常用的兩套框架之一(另一套是SSM)。

1.說起Struts框架,要先說一下MVC這種設計模式(設計思想),全稱Model,View,Controler,是軟件開發中比較流行的設計思想,在Web開發中,Model負責封裝應用程序的數據結構和事務邏輯,集中體現應用程序的狀態,當數據改變時,能在視圖中體現出來。Java中的JavaBean非常適合這個角色;View是Model的外在表現,Model狀態改變時有所體現,JavaEE中jsp非常適合這個角色;Controler對用戶的輸入進行響應,將模型和視圖聯繫到一起,負責將數據寫到模型中,並調用視圖,JavaEE中Servlet適合這個角色。

MVC思想給網站設計帶來巨大好處,但它畢竟只是一種思想,不同的程序員寫出的基於MVC的應用,風格可能不一樣,影響程序的標準化。爲了程序的標準化,Struts就應運而生,受到廣泛的承認。因此MVC是Struts框架的基礎,或者說,Struts是爲了規範MVC開發而發佈的一個框架。類似的框架還有SpringMVC,WebWork等。

以上說的是Struts指的是Struts1.x,該框架給基於MVC的開發提供了較好的支持。Struts2和Struts1相比,不僅是在原有基礎上增加功能或者進行優化,無論從流程還是結構上,都有很多革命性的改進。它是在上文提到的非常流行的webwork基礎上發展起來的。因此,它並沒有繼承Struts1的特點,反而和webwork非常類似。換句話說,Struts2是webwork的升級,在各種功能和性能上都有很好的保證,吸納了Struts1和webwork兩者的優勢,因此也是非常優秀的一個框架。

Struts2與Struts1具有的不同點主要集中在四個方面a.Action類的編寫b.Action的運行模式 c.對Web容器的依賴d.對錶單數據的封裝。

2.接下來說一下Hibernate這個框架,同樣,這個框架也是基於一個設計思想-對象關係映射(ORMapping),這個設計思想是軟件開發過程中數據庫層比較流行的設計思想。它將數據庫中的一條記錄看做一個對象,對這個對象的操作就直接影響到數據庫。在ormapping中,一個po對象,一般表示數據庫表中的一條記錄,只是對記錄的操作可以看做對這個Bean對象的操作,操作之後數據庫中記錄相應變化。

它給數據庫層的操作帶來巨大的好處。但是,它也畢竟只是一種思想,無法解決程序標準化的問題,因此有必要對這個模式進行標準化,讓程序員在標準下進行開發。於是,hibernate框架就出現了。ORMapping是Hibernate的基礎,或者說Hibernate是爲了規範ORMapping開發而發佈的一個框架。iBATIS,EntityBean也是。

3.Struts是web層進行MVC開發的標準框架,hibernate是數據庫層進行ORMapping的標準框架,接下來要說的Spring是協調對象之間進行調用,降低耦合性的框架。

Spring是Java中協調對象間互相調用的解決方案,可以讓對象間的調用接觸緊耦合,大大方便了編程,提高了程序的可伸縮性。

說到Spring,要先提一下耦合性和控制反轉(IOC)。

耦合性是軟件工程中的重要概念。對象間的耦合性就是對象間的依賴性,耦合性越高維護成本越高。因此對象的設計應使類和構件之間的耦合性最小。

控制反轉的原理就是,對象的生成由框架參考配置文件進行,和具體實現類的源代碼無關,將對象生成的控制權由修改不方便的源代碼轉變爲相對方便的配置文件與幾乎不進行修改的框架進行。IOC思想給降低對象耦合帶來巨大好處。它是Spring框架的基礎,或者說,Spring是爲了規範IOC開發而發佈的一個框架。

在以上三大框架的整合中,前端使用Struts等框架完成;後端採用hibernate訪問數據庫;Spring運行在兩者中間,負責降低web層和數據庫層間的耦合性,或者說,讓Struts中的action在調用hibernate的dao時,儘量降低耦合性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章