1. 程式人生 > >【SSH進階之路】Struts + Spring + Hibernate 進階開端(一)

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

height 一段 ioc 效率 陽光大道 面向對象的思想 text ase 們的

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的核心構成

技術分享

這部分內容我們不做過多的解釋,上面導圖中的解釋已經非常easy明了了,假設還是不懂的話,能夠上網查閱相關文檔。


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的基本原理+簡單的登錄實例(附源代碼)



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