Struts、spring、Hibernate在各層的作用
1)struts 負(fù)責(zé) web層.
ActionFormBean 接收網(wǎng)頁(yè)中表單提交的數(shù)據(jù),然后通過(guò)Action 進(jìn)行處理,再Forward到對(duì)應(yīng)的網(wǎng)頁(yè)。 在struts-config.xml中定義, ActionServlet會(huì)加載。
2)spring 負(fù)責(zé)業(yè)務(wù)層管理,即Service(或Manager).
1. service為action提供統(tǒng)計(jì)的調(diào)用接口,封裝持久層的DAO,。
2.可以寫(xiě)一些自己的業(yè)務(wù)方法。
3.統(tǒng)一的javabean管理方法
4.聲明式事務(wù)管理
5.集成Hiberante
3)Hiberante,負(fù)責(zé)持久化層,完成數(shù)據(jù)庫(kù)的crud操作
hibernate 為持久層,提供 OR/Mapping。
它有一組 .hbm.xml文件和 POJO,是跟數(shù)據(jù)庫(kù)中的表相對(duì)應(yīng)的。然后定義DAO,這些是跟數(shù)據(jù)庫(kù)打交道的類,它們會(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)行持久化操作。