版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Spring與Struts、Hibernate的集成本章目標(biāo)掌握Spring與Hibernate的集成掌握Spring與Struts的集成掌握聲明式事務(wù)本章簡介前面我們學(xué)習(xí)了Spring“依賴注入”和“面向方面編程”的原理和簡單應(yīng)用。這些技術(shù)怎樣用到我們的項(xiàng)目中呢?本章我們就以租房系統(tǒng)中的用戶模塊為例,學(xué)習(xí)如何使用Spring簡化DAO層代碼、與Hibernate集成、管理依賴關(guān)系和管理事務(wù)。還要掌握Spring與Struts1的集成,Spring與Struts2的集成將在上機(jī)部分講述。使用Spring重新組裝Web程序使用Spring管理依賴關(guān)系我們的程序依賴關(guān)系是這樣的:Action依賴Biz,Biz依賴DAO,DAO依賴SessionFactory,SessionFactory依賴DataSource。如果使用Spring管理這些依賴關(guān)系,注入的方向剛好與依賴的方向相反Spring與Struts1集成我們知道,在Struts1中Action類的實(shí)例是由Struts創(chuàng)建的。如果要使用Spring管理Action對Biz的依賴,那么Action類就要由Spring來創(chuàng)建。那么,我們怎么對Struts說“Spring已經(jīng)把ActionBean創(chuàng)建好了,拿過去用就可以了”呢?Struts可以以插件的方式擴(kuò)展,我們利用Spring提供的ContextLoaderPlugln插件即可做到Spring和Struts無縫集成。具體的步驟如下:Spring與Struts1集成在Struts配置文件中配置插件在struts-config.xml中,需要把Spring配置文件的位置告知插件。classpath:applicationContext.xml表示到classpath下去找applicationContext.xml文件。如果Spring配置文件放在/WEB-INF/下,可以這樣配置:value="/WEB-INF/applicationContext.xml"。如果有多個(gè)Spring配置文件,可以用逗號隔開,同時(shí)配置多個(gè)路徑,如:value="/WEB-INF/applicationContext.xml,/WEB-INF/action.xml"。將Struts配置文件中所有Action類的type屬性值都配置為“org.springfranqework.web.struts.DelegatingActionProxy”類型在Spring配置文件中配置UserAction,如示例代碼11-10所示,注意這里<bean>沒有id屬
性了,而是name屬性,而且name屬性的值要與Struts配置中相應(yīng)ActionBean的path屬性一致。
另外一個(gè)做法是將業(yè)務(wù)邏輯放到DAO層實(shí)現(xiàn),DAO層依據(jù)業(yè)務(wù)邏輯創(chuàng)建方法,編寫復(fù)雜的業(yè)務(wù)邏輯處理代碼,這樣進(jìn)行架構(gòu)設(shè)計(jì)的系統(tǒng)很快就會嘗到苦果。當(dāng)參加項(xiàng)目的人員達(dá)到一定數(shù)量,或者項(xiàng)目開發(fā)周期到一定時(shí)間,或者項(xiàng)目維護(hù)到一定時(shí)間的時(shí)候,人們發(fā)現(xiàn)這些系統(tǒng)的代碼已經(jīng)變得千頭萬緒了,剪不斷,理還亂。在軟件生產(chǎn)大工廠時(shí)代,質(zhì)量是軟件的生命線,是客戶源源不斷的重要保障,是大把大把人民幣的重要前提,是免于周末加班,凌晨兩點(diǎn)被電話吵醒,不得不去緊急解決客戶問題的護(hù)身符,是看著別人瞎忙半個(gè)月也平不了一張報(bào)表,自己卻可以悠閑地品口香茶、翻兩頁閑書時(shí)心頭暗存的僥幸。一定要隨時(shí)保證你的軟件邏輯清晰、規(guī)范易讀。不要抱著僥幸的心理破壞規(guī)矩。概念完整性說起來很玄虛,但當(dāng)你違背它的時(shí)候,它的反面就會變得形象而具體。聲明式事務(wù)key表示匹配方法的“模式”,可以使用“*”通配符,例如,“add*”表示這條屬性應(yīng)用于add開頭的方法。屬性的值為PROPAGATION_REQUIRED,表示當(dāng)前方法必須運(yùn)行在一個(gè)事務(wù)環(huán)境中。如果一個(gè)現(xiàn)有事務(wù)正在運(yùn)行中,該方法將運(yùn)行在這個(gè)事務(wù)中,否則,就要開始一個(gè)新的事務(wù)??蛇x的值如下:PROPAGATION_MANDATORY,表示當(dāng)前方法必須運(yùn)行在一個(gè)事務(wù)上下文中,否則就拋出異常。PROPAGATION_NEVER,表示當(dāng)前方法不應(yīng)該運(yùn)行在一個(gè)事務(wù)上下文中,否則就拋出異常。PROPAGATION_REQUIRESNEW,表示當(dāng)前方法必須運(yùn)行在自己的事務(wù)里。PROPAGATION_SUPPORTS,表示當(dāng)前方法不需要事務(wù)處理環(huán)境,但如果有一個(gè)事務(wù)正在運(yùn)行的話,這個(gè)方法也可以運(yùn)行在這個(gè)事務(wù)里。Spring聲明事務(wù)的方式Spring對分布式事務(wù)的配置方法進(jìn)行了升級。配置過程更容易理解,而且我們可以在保持示例代碼11-7配置代碼不變的基礎(chǔ)上給UserBizBean的方法增加事務(wù)支持。首先,我們要升級項(xiàng)目中Spring的版本:。添加Spring2.5的jar包,包括springjal、aspectjrt.jar、aspectjweaver.jar和cglibnodep-2.1_3jar。修改Spring配置文件,增加常用命名空間的聲明,總結(jié)Spring為Hibernate開發(fā)提供了良好的支持,可以大大簡化Hiberante的編碼。
在Spring配置文件定義dataSource、SessionFactory再注入DAO中是開發(fā)中常用的做法。Spring依賴
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)田溝渠整治與施工方案
- 地鐵工程截流井施工方案
- 交通運(yùn)輸系統(tǒng)安全防火制度
- 瀝青拌合站施工安全保障方案
- 圖書館突發(fā)公共衛(wèi)生事件應(yīng)急預(yù)案
- 2024-2025學(xué)年黑龍江省綏化市綏棱縣一中高三上學(xué)期10月月考物理試題及答案
- 城市基礎(chǔ)設(shè)施高聚物改性瀝青防水卷材應(yīng)用方案
- 感染科病房清潔消毒方案
- 倉庫租賃合同的審查要點(diǎn)
- 成考?xì)v史地理成人高考(高起本文科)試卷及解答參考(2024年)
- 會務(wù)服務(wù)的合同范本(通用3篇)
- NB_T 10339-2019《水電工程壩址工程地質(zhì)勘察規(guī)程》_(高清最新)
- 繁體校對《太上老君說常清靜經(jīng)》
- 關(guān)于統(tǒng)一規(guī)范人民防空標(biāo)識使用管理的通知(1)
- 電纜振蕩波局部放電試驗(yàn)報(bào)告
- 西門子RWD68說明書
- 針對建筑工程施工數(shù)字化管理分析
- 多品種共線生產(chǎn)質(zhì)量風(fēng)險(xiǎn)評價(jià)
- 【MBA教學(xué)案例】從“蝦國”到“國蝦”:國聯(lián)水產(chǎn)的戰(zhàn)略轉(zhuǎn)型
- Unit-1--College-Life
- 醫(yī)院車輛加油卡管理制度
評論
0/150
提交評論