【SSH進階之路】Struts + Spring + Hibernate 進階開端(一)

  Long Long ago,就聽說過SSH,起初還以爲是一個東東,具體內容更是不詳,總覺得高端大氣上檔次,經過學習之後才發現,不僅僅是高大上,更是低調奢華有內涵,經過一段時間的研究和學習SSH框架的基本原理與思想,總算接地氣了。作爲初學者,有點小小收穫,想通過以博文的形式和大家一起分享,共同進步,在更新博文的過程中難免有認識不足的地方,還請各位大牛提出寶貴的建議,對於好的建議一定虛心接受,認真學習。

 

      這篇博文僅僅是SSH的開端簡介,簡單介紹一下SSH以及三種框架的整體概覽,後面的博文會對各部分的內容一一進行詳細的介紹,此係列博文會持續更新,也請大家關注我的博文。下面我們進入今天的正題:


什麼是SSH


官方的說法:SSH是 struts+spring+hibernate的一個集成框架,是目前較流行的一種web應用程序開源框架。

 

個人的見解:SSH不是一個框架,而是把多個框架(Struts、Spring以及Hibernate)緊密的結合在一起,用於構建靈活、易於擴展的多層Web應用程序。


SSH框架的系統從職責上分爲四層:表示層、業務邏輯層、數據持久層和域模塊層(實體層)。

 

我們通過下面這張圖說明一下,三種框架的關係以及所包含的內容,內容已經很詳細了,在這裏就不做過多的解釋了。


                  


下面我們再詳細看一下組成SSH的這三個框架。


Struts


1、什麼是Struts?

 

      從簡單性來看,Struts是這三個框架中最簡單的一個,它是基於MVC的框架。它通過採用JavaServlet/JSP技術,實現了基於Java EEWeb應用的MVC設計模式的應用框架,是MVC的一個具體實現或着說是MVC的一個具體產品。

 

2、Struts的核心構成

         

 

      Struts的核心同樣也是MVC的核心,Struts是MVC的一個具體產品。

 

(1)Model

 

       由Action、ActionForm以及JavaBean組成,其中ActionForm用於將用戶請求的參數,封裝成爲ActionForm對象,我們可以理解爲實體,由ActionServlet轉發給Action,Action處理用戶請求,將處理結果返回到界面。

 

(2)View

 

       該部分採用JSP+大量的taglib,實現頁面的渲染。

 

(3)Controller

 

       Controller是Struts的核心控制器,負責攔截用戶請求,通過調用Model來實現處理用戶請求的功能。

 

3、爲什麼使用Struts?


      使用Struts作爲系統的整體基礎架構,負責MVC的分離,將頁面從業務邏輯分離出來,使用頁面更加靈活多變,不會影響業務邏輯,簡化了基於MVC的web應用程序的開發,因而使得開發更加高效。


Hibernate


1、什麼是Hibernate?

 

      Hibernate是一個對象關係映射框架,它對JDBC進行了輕量級的封裝,使得我們使用面向對象的思想操作關係型數據庫。

 

2、Hibernate的核心構成

              

              

         

      這部分內容我們不做過多的解釋,上面導圖中的解釋已經很簡單明瞭了,如果還是不懂的話,可以上網查閱相關資料。


3、爲什麼使用Hibernate?


(1)Hibernate是JDBC的輕量級的對象封裝,它使得與關係型數據庫打交道變得更加輕鬆自如。

(2)對象化,它使得我們可以以面向對象的思想操作關係型數據庫,簡化了Dao層編碼工作,使得開發更加對象化了。

(3)移植性更好,支持各種數據庫,更換數據庫異常簡單,不需要改代碼。

(4)實現了透明持久化,沒有實現第三方框架或接口,沒有侵入性,是一種輕量級框架。


Spring


1、什麼是Spring?

 

      簡單來說,Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架。

 

2、Spring的核心構成

 

              


(1)IoC

 

       IoC就是IoC,不是什麼技術,是一種設計模式。通過依賴注入的方式,由spring管理和控制對象之間的依賴關係,避免硬編碼所造成的過度程序耦合。

 

(2)AoP

 

       通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。

 

(3)容器

 

       能管理對象的生命週期、對象與對象之間的依賴關係就是容器。


3、爲什麼使用Spring?


      沒有Spring,Struts和Hibernate可以很好的運行,我稱這樣的模式爲“獨木橋”,但是有了Spring,Struts和Hibernate能夠更好的結合在一起,協調的工作。我稱這樣的模式爲“陽光大道”。Spring的核心思想是IoC和AOP,Spring使得管理對象更加方便,極大的降低組件之間的耦合度,實現了軟件各層之間的解耦。Spring的優點還有很多,我們就不再累述了。


總結


      SSH不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與持久層的分離,耦合度降低,系統的靈活性更好,可複用性高。同時,框架爲我們提供了一些基礎性的服務,使我們的開發更加簡單,大大提高開發效率。


下篇博客,我們介紹Struts的基本原理+簡單的登錄實例(附源碼)

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