Spring、Hibernate與Struts集成的大概思路
首先看一下Struts與Spring的集成。
首先看一下在struts-config.xml中需要做的改動(dòng),最開始是加入插件聲明:
- <struts-config>
- <plug-in
- className="org.springframework.web.struts.ContextLoaderPlugIn">
- <set-property property="contextConfigLocation"
- value="/WEB-INF/applicationContext.xml" />
- </plug-in>
- </struts-config>
還有一個(gè)需要在Struts配置文件中改的是它的ActionMapping部分,這個(gè)在后面再說。
事實(shí)上Struts中加入Spring并不是很復(fù)雜,最重要的是我們需要清楚系統(tǒng)是不是一定要Spring,即Spring的所謂依賴注入等特性對(duì)開發(fā)的意義是不是要大于使用Spring后增加的開發(fā)成本。
下面用圖來說明Struts與Spring結(jié)合后的程序運(yùn)行基本流程:
如上所示,Struts與Spring集成最重要的一點(diǎn)就是改變struts-config.xml中的Action-Mapping設(shè)置,在進(jìn)入Struts的Action之前,Spring就獲得了控制權(quán)。
Spring和Struts集成的部分就先說到這里。
有關(guān)Struts和Hibernate的集成,內(nèi)容不是很復(fù)雜,我歸納了以下幾個(gè)要點(diǎn):
1、Hibernate-Context.xml
這個(gè)文件的<bean>項(xiàng)中需要設(shè)定SessionFactory屬性,Spring已經(jīng)整合了SessionFactory設(shè)置,所以無需hibernate.cfg.xml再設(shè)了。同時(shí),這個(gè)項(xiàng)中也可以設(shè)定映射文件.hbm.xml的列表。
2、DAO繼承HibernateDaoSupport,以調(diào)用其函數(shù)
HibnernateDaoSupport實(shí)現(xiàn)了HibernateTemplate與SessionFactory的關(guān)聯(lián)。HibernateTemplate(用HibnernateDaoSupport里的getHibernateTemplate()可以獲得)對(duì)Hibernate Session進(jìn)行了封裝,可省去獲得Session實(shí)例、事務(wù)啟動(dòng)與提交/回滾以及異常處理等一系列步驟,所以非常簡單。
上面從兩個(gè)方面講了Struts、Spring和Hibernate三者的集成,***簡單歸納一下:
通過修改Struts的配置文件,Spring得以獲得對(duì)Struts中Action的控制權(quán),同時(shí)也將Spring的特性加入了Struts。而與Hibernate結(jié)合以后,通過利用上述的Spring特征,簡化了數(shù)據(jù)庫操作。
【編輯推薦】