SSH架構(gòu)簡單總結(jié) (zhuan)
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ù)管理
5.集成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)行持久化操作。