Struts2、spring2削祈、hibernate3在SSH中各起什么作用
struts 控制用的
hibernate 操作數(shù)據(jù)庫的
spring用解耦的
詳細(xì)的說:
STRUTS 在 SSH 框架中起控制的作用 , 其核心是 Controller, 即 ActionServlet, 而 ActionServlet 的核心就是 Struts-confi g.xml. 主要控制邏輯關(guān)系的處理 .
hibernate 是數(shù)據(jù)持久化層 , 是一種新的對象、關(guān)系的映射工具 , 提供了從 Java 類到數(shù)據(jù)表的映射削饵,也提供了數(shù)據(jù)查詢和恢復(fù)等機(jī)制 , 大大減少數(shù)據(jù)訪問的復(fù)雜度岩瘦。把對數(shù)據(jù)庫的直接操作 , 轉(zhuǎn)換為對持久對象的操作 .
SPRING 是一個輕量級的控制反轉(zhuǎn) (IoC) 和面向切面 (AOP) 的容器框架 , 面向接口的編程 , 由容器控制程序之間的(依賴)關(guān)系,而非傳統(tǒng)實現(xiàn)中窿撬,由程序代碼直接操控启昧。這也就是所謂 “ 控制反轉(zhuǎn) ” 的概念所在:(依賴)控制權(quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器,控制權(quán)的轉(zhuǎn)移劈伴,是所謂反轉(zhuǎn)密末。依賴注入,即組件之間的依賴關(guān)系由容器在運行期決定跛璧,形象的來說严里,即 由容器動態(tài)的將某種依賴關(guān)系注入到組件之中
起到的主要作用是解耦
Struts 、 spring 追城、 Hibernate 在各層的作用
1 ) struts 負(fù)責(zé) web 層 .
ActionFormBean 接收網(wǎng)頁中表單提交的數(shù)據(jù)刹碾,然后通過 Action 進(jìn)行處理,再 Forward 到對應(yīng)的網(wǎng)頁座柱。
在 struts-config.xml 中定義 <action-mapping>, ActionServlet 會加載迷帜。
2 ) spring 負(fù)責(zé)業(yè)務(wù)層管理,即 Service (或 Manager).
1 . service 為 action 提供統(tǒng)計的調(diào)用接口色洞,封裝持久層的 DAO.
2 .可以寫一些自己的業(yè)務(wù)方法戏锹。
3 .統(tǒng)一的 javabean 管理方法
4 .聲明式事務(wù)管理
- 集成 Hiberante
3 ) Hiberante ,負(fù)責(zé)持久化層火诸,完成數(shù)據(jù)庫的 crud 操作
hibernate 為持久層锦针,提供 OR/Mapping 。
它有一組 .hbm.xml 文件和 POJO, 是跟數(shù)據(jù)庫中的表相對應(yīng)的置蜀。然后定義 DAO 奈搜,這些是跟數(shù)據(jù)庫打交道的類,它們會使用 PO 盯荤。
在 struts+spring+hibernate 的系統(tǒng)中媚污,
對象的調(diào)用流程是: jsp-> Action - > Service ->DAO ->Hibernate 。
數(shù)據(jù)的流向是 ActionFormBean 接受用戶的數(shù)據(jù)廷雅, Action 將數(shù)據(jù)從 ActionFromBean 中取出,封裝成 VO 或 PO,
再調(diào)用業(yè)務(wù)層的 Bean 類,完成各種業(yè)務(wù)處理后再 forward 航缀。而業(yè)務(wù)層 Bean 收到這個 PO 對象之后商架,會調(diào)用 DAO 接口方法,進(jìn)行持久化操作芥玉。