框架技術(shù)實(shí)訓(xùn)報(bào)告_查勇超_第1頁(yè)
框架技術(shù)實(shí)訓(xùn)報(bào)告_查勇超_第2頁(yè)
框架技術(shù)實(shí)訓(xùn)報(bào)告_查勇超_第3頁(yè)
框架技術(shù)實(shí)訓(xùn)報(bào)告_查勇超_第4頁(yè)
框架技術(shù)實(shí)訓(xùn)報(bào)告_查勇超_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)訓(xùn)成績(jī)批閱教師日期民羽Uz理城市學(xué)院CITYCOLLEGE.KUNMINGUNIVERSITYOFSCIENCEANDTECHNOLOGY實(shí)訓(xùn)報(bào)告課程名稱框架技術(shù)專業(yè)班級(jí)計(jì)科1211學(xué)號(hào)07學(xué)生查勇超指導(dǎo)教師松彥實(shí)訓(xùn)地點(diǎn)明軒樓3052015年6月18日目錄TOC o 1-5 h z一.實(shí)訓(xùn)目的1二.框架技術(shù)簡(jiǎn)介11.介紹12.知識(shí)點(diǎn)1圖文介紹2三.具體知識(shí)點(diǎn)31.實(shí)例化容器3新建工程,導(dǎo)入jar包31.2新建Spring配置文件3新建類Testi.4運(yùn)行testInitContext()方法42.利用Spring容器創(chuàng)建JavaBean對(duì)象5用構(gòu)造器來實(shí)例化的方式配置:52.2使用靜態(tài)工廠方

2、法實(shí)例化的方式配置。52.3使用實(shí)例工廠方法實(shí)例化的方式配置。53如何控制Bean實(shí)例化73.1Bean對(duì)象的倉(cāng)U建模式73.2Bean對(duì)象的初始化和銷毀93.3Bean對(duì)象的創(chuàng)建時(shí)機(jī)123.4扌旨定bean依賴關(guān)系12利用Spring實(shí)現(xiàn)bean屬性setter方式注入12利用構(gòu)造器參數(shù)實(shí)現(xiàn)依賴屬性的注入12利用Spring的自動(dòng)裝配功能實(shí)現(xiàn)自動(dòng)屬性注入13給MessageBean注入?yún)?shù)值13組件掃描14四.一些常見問題15五.學(xué)習(xí)總結(jié)16實(shí)訓(xùn)目的框架技術(shù)是當(dāng)今web開發(fā)的主流技術(shù),也是一個(gè)比較成熟的web開發(fā)技術(shù),使用這個(gè)技術(shù)能夠加快web開發(fā)、重用代碼,并且開發(fā)出的代碼可讀性較好,邏輯

3、性較強(qiáng),所以學(xué)習(xí)框架是很有必要的。本次課程的目的是讓我們了解并使用框架進(jìn)行web開發(fā)。從而熟悉框架??蚣芗夹g(shù)簡(jiǎn)介1.介紹Spring是一個(gè)開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(A0P)的容器框架。輕量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的

4、JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類??刂品崔D(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。面向切面Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)

5、行聚性的開發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。容器一一Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用??蚣躍pring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。

6、Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。2.知識(shí)點(diǎn)實(shí)例化容器、利用Spring容器創(chuàng)建JavaBean對(duì)象、如何控制Bean實(shí)例化、注入技術(shù)、組件掃描等。而除開spring還有mybaits技術(shù),mybatis是對(duì)JBDC的整合,是使用另一種方式使用JDBC,后期還會(huì)將spring和mybatis整合。3.圖文介紹具體知識(shí)點(diǎn)1.實(shí)例化容器1.1新建工程,導(dǎo)入jar包新建名為SpringIoC_Day01_Part1的w

7、eb工程,在該工程導(dǎo)入如圖所示的5個(gè)Spring相關(guān)jar包。wSpringloCDayfllPartl鼻sfc曲orgi.tarena.daci申crgtarenamestapplicatia-nConte-xt.xmltJREgy5t-eniUbraryQdkl-6-U_25_M86Jav-aEE5Libraries*R.sefrnce-dUbranies+l-commons-loggingjarjspring-beafi?-3.2-8,RELEASE-jar+C.springconte5ct-S.2tS.RELEASEfspring-core-3,2B.RELEASE.jaf:i-冷sp

8、ring-expre-ssian-3.2-S.RELEASEjarJTJUft4A2We-bRcot1.2新建Spring配置文件新建Spring配置文件applicationContext.xm1。該文件名為Spring默認(rèn)的配置文件名,也可以自由定義名稱,如圖所示:applicationContext.xml文件中的代碼如下所示:fbe-aiiijh1jis=h+BqiruiHfraBrEFnrLoe.e-二匚hu口n:EansZuluszsi=trfatp:/mm.皚cr*1SOOI/KNE&Iiehb.-ms-tancemlnsSjQirtieit=trtti:/AmtniBcfraM

9、nnt.eiE/acbciii/cfcitcst*ruinsjdbclittp:/mesprincitamxLaEcZacbaB/jdhraalns:.jEPnxtW:/mwinfiftiMnrLarv/tMu/jenils:qirinffftneMiriLcrv/BdHa/t:xnlns:jpa二Rtlp:sprir:才s口已PBik.ctf乜上上i.Hat壯jpaSai:&7heBsLK&tioi=ittp;/兒戲和!eruiiDrkoe5cbe-t-eansLtip7/mra,.三口ritj;于工gswtlLDrc,s,.scbMa_.hes/mprin工-beans-乩2isdhtt-

10、j:J/we.snriTiEfraiKwurkcnrfkchca/ccmt商thttT:/mr.priTiEfraDmrkrcrg.6inteKtKml丿RE專戸怖m(xù)由強(qiáng)哼即琥卓Qfjc晴】諒JavaEE5LibraliesRetrwcedl;b農(nóng)片xLcommons-loqgitni.jarspring-bjris-3.2L8LRElE-ASE-jarspring-coffitejrt-3uS.S.RELTAtE.jarsnng-coreX.?,SMtElEASEjar533-ring-expr#tsiori-12.8.RELEAS-Ejar&山曲博I歩母卯晶加日t在TestCase類中添加

11、測(cè)試方法testInitContext(),代碼如圖所示:pnKXl0ai-as:stTeat-tras-eK/*IMi或買削悅罰吞器頁(yè)例TTapoXtlic*口idtesS-lraxcConE-ejc-()SxrincTccmf=Mappiicat-ionC口口text.-stniA?AfipJ.xuxiCoxt-ea.iiwC1-&3sPatrhLKm-LAppU.;a-tri.8n.C-xitejiErJiSystem121.prxrttln(a);運(yùn)彳亍testInitContext()方法運(yùn)行testInitContext()方法,控制臺(tái)輸出結(jié)果如圖所示:Pi&blems,2.利用S

12、pring容器創(chuàng)建JavaBean對(duì)象用構(gòu)造器來實(shí)例化的方式配置用構(gòu)造器來實(shí)例化的方式的配置代碼如下:bean標(biāo)記中id屬性calendarObjl用于定義bean名字,是程序代碼中獲得Spring管理bean對(duì)象的標(biāo)識(shí),這個(gè)名字不能重復(fù),class用于指定創(chuàng)建對(duì)象的類GregorianCalendar,Spring會(huì)自動(dòng)的調(diào)用GregorianCalendar類的默認(rèn)構(gòu)造器創(chuàng)建bean對(duì)象實(shí)例.使用靜態(tài)工廠方法實(shí)例化的方式配置。使用靜態(tài)工廠方法實(shí)例化的方式的配置代碼如下:bean標(biāo)記中id屬性calendarObj2用于定義bean名字,是程序代碼中獲得Spring管理bean對(duì)象的標(biāo)識(shí),這

13、個(gè)名字不能重復(fù),class屬性用于指定創(chuàng)建對(duì)象的工廠類Calendar,factory-method屬性用于指定創(chuàng)建對(duì)象的靜態(tài)工廠方法getInstance,Spring會(huì)自動(dòng)的調(diào)用工廠類Calendar靜態(tài)工廠方法getInstance創(chuàng)建bean對(duì)象實(shí)例.使用實(shí)例工廠方法實(shí)例化的方式配置。使用實(shí)例工廠方法實(shí)例化的方式的配置代碼如下:這里定義了兩個(gè)bean,其中一個(gè)beancalendarObj3是用于創(chuàng)建dateObj對(duì)象的實(shí)例工廠.另外一個(gè)bean標(biāo)記中id屬性dateObj用于定義bean名字,是程序代碼中獲得Spring管理bean對(duì)象的標(biāo)識(shí),這個(gè)名字不能重復(fù),factory-bea

14、n屬性用于指定創(chuàng)建對(duì)象的工廠對(duì)象calendarObj3,前面定義的一個(gè)bean,factory-method屬性用于指定創(chuàng)建對(duì)象的工廠方法getTime,Spring會(huì)自動(dòng)的調(diào)用工廠類Calendar靜態(tài)工廠方法getInstance創(chuàng)建bean對(duì)象實(shí)例.步驟一:配置applicationContext.xml,增加Bean對(duì)象創(chuàng)建聲明代碼如下所示:2.步驟二:在TestCase類中增加測(cè)試方法testCreateBeanObject,測(cè)試Spring創(chuàng)建對(duì)象的結(jié)果先創(chuàng)建Spring容器對(duì)象,再調(diào)用getBean方法獲得Spring創(chuàng)建的對(duì)象實(shí)例,并且利用輸出語(yǔ)句測(cè)試對(duì)象是否存

15、在.這個(gè)代碼中要注意:getBean方法的參數(shù)必須是上一個(gè)步驟中定義的bean標(biāo)記上的id屬性的值,否則會(huì)出現(xiàn)運(yùn)行異常.代碼如下所示:/*測(cè)試Spring支持的多種JavaBean對(duì)象創(chuàng)建方式*/TestpublicvoidtestCreateBeanObject()實(shí)例化Spring容器示例Stringconf=applicationContext.xml;ApplicationContextac=newClassPathXmlApplicationContext(conf);7./1.用構(gòu)造器來實(shí)例化的方式。利用Spring調(diào)用構(gòu)造器GregorianCalendar創(chuàng)建Calendar實(shí)

16、例./Calendarcal1=(Calendar)ac.getBean(calendarObj1);/方式1Calendarcal1=ac.getBean(calendarObj1,Calendar.class);/方式2System.out.println(cal1:+cal1);13./2.使用靜態(tài)工廠方法實(shí)例化的方式。/利用Spring調(diào)用Calendar的靜態(tài)工廠方法getInstance()創(chuàng)建Calendar實(shí)例.Calendarcal2=ac.getBean(calendarObj2,Calendar.class);System.out.println(cal2:+cal2);

17、18./3.使用實(shí)例工廠方法實(shí)例化的方式。/利用Spring創(chuàng)建GregorianCalendar對(duì)象作為工廠,調(diào)用getTime()方法創(chuàng)建Date類型對(duì)象實(shí)例.Datedate=ac.getBean(dateObj,Date.class);System.out.println(date:+date);步驟三:運(yùn)行測(cè)試方法測(cè)試bean實(shí)例化控制臺(tái)輸出結(jié)果如圖所示:囲SQLRiSLflUSW極BrgufieF:一RrqbJflmTfl?fcs3.如何控制Bean實(shí)例化3.1Bean對(duì)象的創(chuàng)建模式新建ExampleBean,該類在工程中的位置如圖所示:ji?sJ;Fjcjimple&anAYB|

18、JjEifjmpiif&eanIjavd血|JDBCDta&QiUrccjarv-jQO円記仏U妬F良O於必:-glUterDAOjaM*J0drg.tareik.4ntify由crgjaierbjse-nflc*ffirg4iirc?n*.tc5t-appJicati&nCorrtexumlB-,JRET5ftmljlbraryGdkliCL2)ve6|t*1JavaEE5LibrarifsJ,R4?rTcnccdLbrar-esJUnlt4-悶-.啟W#W!MlExampleBean類的代碼如圖所示:在applicationContext.xml文件中,配置ExampleBean,代碼如圖

19、所示:在TestCase中新建測(cè)試方法testExampleBean。,在方法中從Spring中獲取兩個(gè)ExampleBean類型對(duì)象,通過比較操作符“=”進(jìn)行比較如果輸出結(jié)果為true,則表明兩次獲取的是同一個(gè)對(duì)象,即創(chuàng)建對(duì)象的方式單例模式,代碼如圖所示:Z測(cè)試feean尉豪的作用述打1491pnlsllciro-id.&ei3tEKanipleBe-anea:n2=a-c-get,3an(exMncpleaanEaajrjrileBean.,class:SyacmrifMtEplnln(k-anLAban2);運(yùn)行testExampleBean()方法,控制臺(tái)輸出結(jié)果如圖所示:!P2014

20、3sSfi.!4F午0=4坤霄汕#數(shù)*3卻J鈕瓦斜5昶色!匸曲護(hù)尸“&弗鼻漾RefxesJilEg口HgpsprlEigfraoeworit=匚口口ttsupport.CLajFatkKnlAppl1cff!P30143;5S!F5E,rSp?i?igiEuejk,fc&R#Bt*etB!FyrQ,MJsrE*ss3b口oieLltl耳3CbeandeflBJ.tJ.c-nsfraiscl-assp心七乩res&uzceappLkcat1ori:F20143:53:FTo:flr*prmgSMwoTks.riSefetayrsupo:t.Mtra&reXTLat-a.Ei.dating-s:i

21、_口glctns%口angspr口號(hào)Eeqxxoi1丄.b.d-Ttb.曰匸七口*了、竇航辟中和”的_jTOC o 1-5 h zle&-ean2fJ!f齊哪amWR”JBtetttjcgpli=Bsntext,siAppct-;LlJippii九月丄占ZD14-3;51;FOrg.rprlugfraneozkaibearo.factory.support.DefDcsXEC-yLnsgXngle-t.obaIn.apx-Xngfazu-urk控制臺(tái)沒有輸出預(yù)期的“銷毀ExampleBean對(duì)象”的結(jié)果。原因在于applicationContext.xml文件中設(shè)置的destroy-metho

22、d屬性僅僅對(duì)單例模式起作用,在prototype模式下沒有意義。修改applicationContext.xml,使用singleton模式創(chuàng)建Bean對(duì)象,代碼如圖所示:c/bean運(yùn)行testExampleBean()方法,控制臺(tái)輸出了“銷毀ExampleBean對(duì)象”,如圖所示:ZTJS.冃麹月W在頂級(jí)的vbeans/兀素中的default-init-method屬性以及default-destroy-method屬性,可以為容器所有vbean指定初始化回調(diào)方法以及指定銷毀回調(diào)方法,代碼如圖所示:httpsf7yahtp:/-sphttjpr/卩軒審.springrfhetprZZwPr

23、SprirEgf?ittpffs;衛(wèi)rinafrdBi,or?/schtt總a/txht工站臺(tái)-or/rcftsi/tiaea/jjdftctp:/wvEpriqfdeajl-netriotHdefault-tiestroy-r.已匸bed=ct?s:txoy?.彳卜iZT77P:/Z=-F存7/巧;*k3.2Bean對(duì)象的初始化和銷毀修改ExampleBean類,加入方法init和方法destroy,代碼如下所示:packageorg.tarena.dao;2.publicclassExampleBean4.publicExampleBean()System.out.println(”實(shí)例化

24、ExampleBean);TOC o 1-5 h z HYPERLINK l bookmark10 8.publicvoidexecute()System.out.println(”執(zhí)行ExampleBean處理”);publicvoidinit()System.out.printlnC初始化ExampleBean對(duì)象”);publicvoiddestroy()System.out.println(”銷毀ExampleBean對(duì)象”);18.修改applicationContext.xml,希望在bean對(duì)象創(chuàng)建后自動(dòng)調(diào)用init()方法,代碼如圖所示:.運(yùn)行testExampleBean()

25、方法,自定義的初始化的方法在對(duì)象被創(chuàng)建后調(diào)用,如圖所示:V時(shí)nrigtedATtttS【呻ApplicrtjQnFjIssavaJdkl-7-0_4Qbin|/ljigorg.apringtramtworJc.eontext、BuppoetrSIasir六月J.2:f50143:52:05下平nrg.ipringfra_nieirfoark.bems.*etejr信息;Er口鼻白J_ng?LMLbesndeflAltlonafxcnclssapathctfourS-六月12f2013;52;05下午crg.apilngErfULeifOik.hrnnd已匚上口乂信宜.:Jin5t-antiat

26、iri7singlafconainorgsp-ringfrauawQr!t|r實(shí)例化Ejcgp1-eBean初蠟化巴JEM?leBear劃蔬J:5n?KtEKanp1-eBeanf初tExaiTiE修改applicationContext.xml,希望在bean對(duì)象銷毀前自動(dòng)調(diào)用destroy方法,bean對(duì)象在spring容器關(guān)閉的時(shí)候被銷毀,代碼如圖所示:b-tdnid=音“/碑tl&Aft-F璋.Ei伽dEjcdrifilAE*AAHsccpejpjrpenxnxt-meth.-&d=initdestxQjir-Eeth&d=frfet.roywi-修改testExampleBean()

27、方法,關(guān)閉ApplicationContext對(duì)象,代碼如圖所示:pobliGvoidcegcExuruleSeain(1打其刪ttSpt吝冷示劍Spring-confappliceLLlotLConEex匚.xcl;App丄itcKi;egnp*r/5?ASS艷EKiUnpLeBeajirscanLtacagetBeiaiLexjanjpleBea訂%EacawleB-eanciassJrEwpleBearsbe42ac,n,(Mca1eSe-AnsrExajTleB-eihnPclnssrSyjSTMl-3JE沖E!力tlfl(laaA.*丄l5雯ilflZ上/關(guān)iilSjp-ilnQSj

28、連費(fèi)山齊匸me麗pHWgUon豆散習(xí)走猶了qLqx門方崔Abh七ud匚七耳戶;戸1=94七口門1匚|話七專OFt-_12pDLI.3-SSI5!pzxptiFXitlbOpXfXM.C|CE-LdF*l3haiCEyb0Upgjl-l控制臺(tái)沒有輸出預(yù)期的“銷毀ExampleBean對(duì)象”的結(jié)果。原因在于applicationContext.xml文件中設(shè)置的destroy-method屬性僅僅對(duì)單例模式起作用,在prototype模式下沒有意義。修改applicationContext.xml,使用singleton模式創(chuàng)建Bean對(duì)象,代碼如圖所示:/beaTi?-運(yùn)行testExample

29、Bean()方法,控制臺(tái)輸出了“銷毀ExampleBean對(duì)象,如國(guó)CfwI52(e-Ee-rnnimarted*-TefiJsvsAppILatKiraCiVJP&gramFilesV-ajdk1.|svarw_六月IN2014目山B山P下午o旳匕旳焦QEHD訃.3角飪ytHqpFztr呼ftBs縣坊占n僵*=rgr“亡戦srkr仔wn耳電夬窯】護(hù)百肝中we匚匚忒六月12r3014(注匡泊4T4-arg-spzaLngfr-ftaeveik-b-E-an-zy.xrfill.:LeadingK3必beandeflmtlaa:f-Q3cloupathenouzce【血六H12r0144:IB-

30、sSFF-3*?-ap*kngfz-awwozk-beans.xy.tBftePsre-ifistaiseli-tiisg9i!tgle!i9in&rg,spflBffsraHsiJafk也皀汕時(shí)共例ItK4JleE4n彳胡焉覽MM#丄業(yè)恥&屈累ji-rueJ亢月2014416-:20T4os1gspffkagfi-aaevoek-Mmtewt.supp&sMliffi息:Closingorg-tprlngfscahswsrl.e&ritext,*臼ph上已.CLiiitlP-Eh:如裟ASiiP20*143=士簾=綜4下早ox1冒足巧七ary,古f|ft:Dese-rsiinsiBglswn

31、jla.白上曹tgE*iisp“Be.M播I:在頂級(jí)的beans/元素中的default-init-method屬性以及default-destroy-method屬性,可以為容器所有vbean指定初始化回調(diào)方法以及指定銷毀回調(diào)方法,代碼如圖所示:h吐jp;htp/fse/u耳pringrfrajzisworiozry/schejsa/ontewthttji/etvAetjEj/Z卩討穢springrfrAESyariazjr/ss*Ea/jieibcJbetp:/rpwprinfrsfkttpsffp讚穢rspringfrAE?s匚由垃鼻/jsekttpr/片訐穢sprlngfriEJitt

32、ps/ZVivpspringfraisei/ori,orgr/chejsa/tx.springhttp:7f卜springfrr/sirftea/dahttp:xwvspring?defajlt-DLt-口亡匚txaci=iult*defaZu-qeatrey-nethd-aestjroy?3.3Bean對(duì)象的創(chuàng)建時(shí)機(jī)通過設(shè)置配置文件屬性lazy-init二true,可以改變Spring容器創(chuàng)建對(duì)象的時(shí)機(jī)3.4指定bean依賴關(guān)系可以設(shè)置一個(gè)組件依賴另一個(gè)組件,在創(chuàng)建被依賴的組件的同時(shí),也創(chuàng)建了那個(gè)依賴的組件。利用Spring實(shí)現(xiàn)bean屬性setter方式注入JDBCDataSource類封

33、裝了管理數(shù)據(jù)庫(kù)連接的方法getConnection(),這個(gè)方法在執(zhí)行之前需要數(shù)據(jù)庫(kù)連接參數(shù):數(shù)據(jù)庫(kù)驅(qū)動(dòng),連接URL,用戶名和密碼,利用Spring實(shí)現(xiàn)JDBCDataSource對(duì)象的創(chuàng)建,再使用setter注入的方式將數(shù)據(jù)庫(kù)連接參數(shù)注入給JDBCDataSource。這樣就可以正常的調(diào)用getConnection()方法獲得數(shù)據(jù)庫(kù)連接了。利用Spring配置文件applicationContext.xml配置bean,并且setter參數(shù)注入JDBCDataSource的連接參數(shù),這樣Spring在創(chuàng)建JDBCDataSource對(duì)象以后就會(huì)自動(dòng)化的調(diào)用setter方法注入數(shù)據(jù)庫(kù)連接參數(shù).

34、步驟和之前的差不多,在最后的配置文件中需要加上響應(yīng)的配置。利用構(gòu)造器參數(shù)實(shí)現(xiàn)依賴屬性的注入Spring支持利用構(gòu)造器注入?yún)?shù)實(shí)例化Bean方式。只要在Spring的配置文件中增加構(gòu)造器參數(shù)constructor-arg,Spring就會(huì)自動(dòng)的調(diào)用有參數(shù)的構(gòu)造器創(chuàng)建bean對(duì)象實(shí)例,整個(gè)過程無(wú)需程序編碼只需要配置applicationContext.xml文件即可,代碼參考如下:利用Spring的自動(dòng)裝配功能實(shí)現(xiàn)自動(dòng)屬性注入這個(gè)配置也不是很常用,就不做具體的介紹。7.給MessageBean注入?yún)?shù)值Spring可以通過配置文件為bean注入多種類型的屬性,MessageBean類用于演示Spr

35、ing的多種類型數(shù)據(jù)的注入方式,這些類型數(shù)據(jù)和注入方式包括:1.注入基本值。2.注入Bean對(duì)象。3.直接集合注入。4.引用方式集合注入5.注入Spring表達(dá)式值。6.注入null或空字符串。比如:publicclassMessageBeanprivateStringmoduleName;privateintpageSize;privateStringusername;privateStringpassword=;publicStringgetUsername()returnusername;publicvoidsetUsername(Stringusername)this.username

36、=username;publicStringgetPassword()returnpassword;publicvoidsetPassword(Stringpassword)this.password=password;publicStringexecute()System.out.println(moduleName=+moduleName);System.out.println(pageSize=+pageSize);System.out.println(username=+username);System.out.println(password=+password);System.out.printl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論