簡(jiǎn)單的說:
struts
控制用的
hibernate
操作數(shù)據(jù)庫的
spring
用解耦的
詳細(xì)的說:
STRUTS
在
SSH
框架中起控制的作用
,
其核心是
Controller,
即
ActionServlet,
而
ActionServlet
的核心就是
Struts-confi g.xml.
主要控制邏輯關(guān)系的處理
.
hibernate
是數(shù)據(jù)持久化層
,
是一種新的對(duì)象、關(guān)系的映射工具
,
提供了從
Java
類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)等機(jī)制
,
大大減少數(shù)據(jù)訪問的復(fù)雜度。把對(duì)數(shù)據(jù)庫的直接操作
,
轉(zhuǎn)換為對(duì)持久對(duì)象的操作
.
SPRING
是一個(gè)輕量級(jí)的控制反轉(zhuǎn)
(IoC)
和面向切面
(AOP)
的容器框架
,
面向接口的編程
,
由容器控制程序之間的(依賴)關(guān)系,而非傳統(tǒng)實(shí)現(xiàn)中,由程序代碼直接操控。這也就是所謂
“
控制反轉(zhuǎn)
”
的概念所在:(依賴)控制權(quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器,控制權(quán)的轉(zhuǎn)移,是所謂反轉(zhuǎn)。依賴注入,即組件之間的依賴關(guān)系由容器在運(yùn)行期決定,形象的來說,即由容器動(dòng)態(tài)的將某種依賴關(guān)系注入到組件之中
起到的主要作用是解耦
Struts
、
spring
、
Hibernate
在各層的作用
1
)
struts
負(fù)責(zé)
web
層
.
ActionFormBean
接收網(wǎng)頁中表單提交的數(shù)據(jù),然后通過
Action
進(jìn)行處理,再
Forward
到對(duì)應(yīng)的網(wǎng)頁。
在
struts-config.xml
中定義
<action-mapping>, ActionServlet
會(huì)加載。
2
)
spring
負(fù)責(zé)業(yè)務(wù)層管理,即
Service
(或
Manager).
1
.
service
為
action
提供統(tǒng)計(jì)的調(diào)用接口,封裝持久層的
DAO.
2
.可以寫一些自己的業(yè)務(wù)方法。
3
.統(tǒng)一的
javabean
管理方法
4
.聲明式事務(wù)管理
5.
集成
Hiberante
3
)
Hiberante
,負(fù)責(zé)持久化層,完成數(shù)據(jù)庫的
crud
操作
hibernate
為持久層,提供
OR/Mapping
。
它有一組
.hbm.xml
文件和
POJO,
是跟數(shù)據(jù)庫中的表相對(duì)應(yīng)的。然后定義
DAO
,這些是跟數(shù)據(jù)庫打交道的類,它們會(huì)使用
PO
。
在
struts+spring+hibernate
的系統(tǒng)中,
對(duì)象的調(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
收到這個(gè)
PO
對(duì)象之后,會(huì)調(diào)用
DAO
接口方法,進(jìn)行持久化操作。
?