Java SSH框架學習(入門)

SSH就是 struts+spring+hibernate 的一個集成框架,是java中一種流行的JAVA WEB 應用程序開源框架。因爲我最熟悉的還是ASP.NET的的MVC和Python的Django框架,今天有必要學習下java 的流行框架SSH,其實作爲WEB應用的整體框架,我發現其中有很多類似的地方,比如這裏的Struts就是Django中的Views層+模板層的一個前臺數據填充模塊,而spring 就是連接Struts和Hibernate 的中間業務邏輯層,但是這在Django中已經被劃分到views中去了,最後的Hibernate 就是典型的數據庫映射層嘛,這一點和Django的models 層有相似之處,就是沒有Django的簡化,下面是看了篇博客然後總結的:

Struts

這是的java 基於Sun J2EE 平臺的MVC框架,主要是採用 Servlet 和 JSP 技術來實現的。

官方地址:http://struts.apache.org

Spring 

解決許多J2EE開發中常見的問題的框架,Spring提供了管理業務對象的一致性方法並且鼓勵面向接口編程而不是對類編程,Spring架構的基礎是基於JavaBean屬性的Inersion of Control容器,String提供了唯一的數據訪問抽象,包括簡單和有效的JDBC框架,String 結合Hibernate和其他的O/R mapping 解決方案等。

官方地址:spring: http://www.springsource.org

Hibernate

他是一個開源的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java 程序員可以隨心所欲的使用對象編程思維來操控數據庫,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。

官方地址:http://www.hibernate.org

在SSH的組合模式中,三者各自的作用

Struts 是一個很好的MVC框架,主要技術是Servlet 和Jsp.Struts的MVC設計模式可以使我們的邏輯變得很清晰,讓程序變得層次分明(類似於Django中的Views層)。

Spring提供了管理業務對象的一致化方法,並且鼓勵對接口編程而不是對類編程,這樣在很大程度上鬆解了耦合(已經被融入到Views層中了)。

Hibernate 是用來持久化數據的,提供全面的面向對象的數據庫操作,Hibernate 對JDBC進行了非常輕量級的封裝,這樣和數據庫打交道就容易多了(類似於Django 中的models層)。

其中很多沒說的,直接看看SSH架構圖吧:


Struts負責的是web層:

ActionFormBean接收網頁中表單提交的數據,然後通過Action進行處理,再Forward到對應的網頁中,在Struts-config.xml中定義<action-mapping>,這樣ActionServlet會加載進來。

Spring負責的是業務邏輯層,即Service:

Service爲Action提供統一的調用接口,封裝持久層的DAO,並且集成了Hibernate ,Spring可對JavaBean(對象)和事物進行統一的管理。

Hibernate負責持久層,完成數據庫的CRUD操作:

Hibernate有一組hbm.xml和PO,是數據庫中的對應的表相對應的,然後定義DAO,這些是與數據庫打交道的類。(直接就是複雜化的Models層)

下面是SSH中的對象調用流程圖:


主要的數據流路徑是:Struts->Spring->Hibernate(JSP->Action->Service->DAO->Hibernate)

發佈了75 篇原創文章 · 獲贊 15 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章