applicationContext.xml詳解_第1頁
applicationContext.xml詳解_第2頁
applicationContext.xml詳解_第3頁
applicationContext.xml詳解_第4頁
applicationContext.xml詳解_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、想必用過Spring的程序員們都有這樣的感覺,Spring把邏輯層封裝的太完美了(個(gè)人感覺View層封裝的不是很好)。以至于有的初學(xué)者都不知道Spring配置文件的意思,就拿來用了。所以今天我給大家詳細(xì)解釋一下Spring的applicationContext.xml文件。Ok,還是通過代碼加注釋的方式為大家演示:以下是詳解Spring的applicationContext.xml文件代碼:<!- 頭文件,主要注意一下編碼-><?xml versio n="1.0" en codi ng="UTF-8"?>VDOCTYPE bea

2、 ns PUBLIC "-/SPRING/DTD BEAN/EN" "http:/www.sprin /dtd/spri ng-bea ns.dtd"><beans><!- 建立數(shù)據(jù)源-><bea n id="dataSource"class=" mon s.dbcp.BasicDataSource"><!- 數(shù)據(jù)庫驅(qū)動(dòng),我這里使用的是Mysql數(shù)據(jù)庫-><propertyn ame="driverClassName&

3、quot;><value>com.mysql.jdbc.Driver</value></property><!- 數(shù)據(jù)庫地址,這里也要注意一下編碼,不然亂碼可是很郁悶的哦!-><propertyn ame="url"><value>jdbc:mysql:/localhost:3306/tie?use Uni code=true&amp;characterE neodin g=utf-8</value></property><!-數(shù)據(jù)庫的用戶名-><

4、propertyn ame="user name"<value>root</value></property><!- 數(shù)據(jù)庫的密碼->vproperty n ame="password"><value>123</value></property></bea n><!- 把數(shù)據(jù)源注入給Session工廠-><bea nid="sessi onF actory"class="org.spri ngframewo

5、rk.orm.hiber nate3.LocalSessi onF actoryBea n">vproperty n ame="dataSource"><ref bea n="dataSource"/></property><!-配置映射文件->vpropertyn ame="mapp in gResources"><list><value>com/al on ely/vo/User.hbm.xml</value></list&g

6、t;</property>v/bea n><!-把 Session 工廠注入給 hibernateTemplate-><!- 解釋一下 hibernateTemplate : hibernateTemplate提供了很多方便的方法,在執(zhí)行時(shí)自動(dòng)建立HibernateCallback 對(duì)象,例如:load()、get()、save、delete()等方法。-><bea nid="hiber nateTemplate"class="org.spri ngframework.orm.hiber nate3.Hiber na

7、teTemplate"<con structor-arg><ref local="sessi onF actory"/>v/c on structor-arg>v/bea n><!- 把DAO 注入給 Session 工廠->vbea nid="userDAO" class="com.alo nely.dao.UserDAO">vpropertyn ame="sessi onF actory"><ref bea n="sessi

8、onF actory"/></property></bea n><!-把 Service 注入給 DAO -><bea nid="userService"class="com.al on ely.service.UserService"><property n ame="userDAO"><ref local="userDAO" /></property></bea n><!-把 Action 注入

9、給 Service -><bea nn ame="/user"class="com.al on ely.struts.act ion. UserAct ion"><property n ame="userService"><ref bea n="userService"/></property></bea n></beans>以上Spring 的applicationContext.xml文件我是用的 SSH架構(gòu),如果您用 Spring的

10、MVC架構(gòu),其原理也是一樣的。對(duì)里面的一些概念還不熟悉,一個(gè)字"暈"啊,在網(wǎng)上搜搜資料,解釋一下applicationcontext.xml我們以項(xiàng)目中的訂單Order為例簡要說明一下Spring 與Hibernate的集成。關(guān)于如何使用Hibernate 來對(duì)數(shù)據(jù)庫表做映射,我們?cè)谇懊嬉呀?jīng)做了介紹,這里我們關(guān)心的是如何 配置Spring,使它能管理Hibernate。其實(shí),只要在Spring的配置文件(我們這里是 ap plicationContext.xml)中配置一個(gè)叫做 sessionFactory的 bean , Spring 就可以和 Hibernate聯(lián)系起來

11、了。<bea nid="sessi onF actory"class="org.spri ngframework.orm.hiber nate.Local SessionFactoryBean">vpropertyn ame="c on figLocati on"><value>com/asce nt/bea n/hiber nate.cfg.xml</value></property></bea n>這樣,Spring和Hibernate 的第一步整合就完成了,現(xiàn)在到

12、了關(guān)鍵的地方如何讓Spring和Hibernate雙劍合璧來實(shí)現(xiàn)業(yè)務(wù)邏輯?還是在applicationContext.xml文件中先做一個(gè)配置。<bea nid="tra nsact ionMan ager"class="org.spri ngframework.orm.hibernate. HibernateTransactionManager"><propertyn ame="sessi onF actory"><ref local="sessi onF actory"/>&

13、lt;/property></bea n>在上面你大概可以感覺到Spring給我們帶來的好處了,Spring的IoC模式可以統(tǒng)一管理各層,而又使各層松散耦合在一起,使各層之間實(shí)現(xiàn)最大的解耦性,這也是Web架構(gòu)一向的追求。但是,Spring 帶來的好處還不止于此,除了IoC還有AOP, Spring 可以運(yùn)用AOP來實(shí)現(xiàn)很多功能,最常用的就是事務(wù)處理。這里我們用了業(yè)務(wù)服務(wù)(bus in essservice )層和數(shù)據(jù)存取對(duì)象(Data Access Object )層,在業(yè)務(wù)服務(wù)層我們?cè)黾邮聞?wù)處理,數(shù) 據(jù)存取對(duì)象層負(fù)責(zé)數(shù)據(jù)讀寫。首先,組裝配置好 Service Bea ns

14、。<bea nid="orderService"class="org.spri ngframework.tra nsactio n.i nterceptor. TransactionProxyFactoryBean"><propertyn ame="tra nsacti onMan ager"><ref local="tra nsact ionMan ager"/></property><propertyn ame="target">&

15、lt;ref local="orderTarget"/></property><propertyn ame="tra nsacti on Attributes"><props><propkey="fi nd*">PROPAGATION_REQUIRED,readO nl y,-OrderException</prop><propkey="save*">PROPAGATION_REQUIRED,-OrderExceptio n,-Order

16、Mi nimumAmoun tExcepti on</prop></props></property></bea n>之后,需要把業(yè)務(wù)服務(wù)對(duì)象和數(shù)據(jù)存取對(duì)象也組裝起來,并把這些對(duì)象配到一個(gè)事務(wù)管理器(transactionmanager )里。在Spring中的配置信息。<bea n id="orderTarget"class="com.asce nt.bus in ess.service.OrderServicelmpl"><property n ame="orderDAO&q

17、uot;><ref local="orderDAO"/></property></bea n><bea n id="orderDAO"class="com.asce nt.dao.hiber nate.OrderHiber nateDAO"><propertyn ame="sessi onF actory"><ref local="sessi onF actory"/></property></bea

18、 n>圖6-10是項(xiàng)目對(duì)象搭建的一個(gè)提綱。從中可以看出,每個(gè)對(duì)象都聯(lián)系著Spring,并且能通過Spring注入到其他對(duì)象。把它與Spring的配置文件比較,觀察他們之間的關(guān)系。 Spring就是這樣基于配置文件,將各個(gè)Bean搭建在一起的。這里我們使用一個(gè) TransactionProxyFactoryBean,它定義了一個(gè) setTransactionMan ager(),這個(gè)對(duì)象很有用,它能很方便地處理你申明的Service Object中的事物,你可以通過transactionAttributes屬性來定義怎樣處理。TransactionProxyFactoryBean還有個(gè) setter ,這會(huì)被業(yè)務(wù)服務(wù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論