2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、spring概念理解概念理解(資料資料)一、Spring的IoC(InversionofControl)。這是Spring中得有特點(diǎn)的一部份。IoC又被翻譯成“控制反轉(zhuǎn)”,也不知道是誰翻譯得這么別扭,感覺很深?yuàn)W的詞。其實(shí),原理很簡單,用一句通俗的話來說:就是用XML來定義生成的對(duì)象。IoC其實(shí)是一種設(shè)計(jì)模式,Spring只是實(shí)現(xiàn)了這種設(shè)計(jì)模式。這種設(shè)計(jì)模式是怎么來的呢?是實(shí)踐中逐漸形成的。第一階段:用普通的無模式來寫Java程序。一般初

2、學(xué)者都要經(jīng)過這個(gè)階段。第二階段:頻繁的開始使用接口,這時(shí),接口一般都會(huì)伴隨著使用工廠模式。第三階段:使用IoC模式。工廠模式還不夠好:(1)因?yàn)榈念惖纳纱a寫死在程序里,如果你要換一個(gè)子類,就要修改工廠方法。(2)一個(gè)接口常常意味著一個(gè)生成工廠,會(huì)多出很多工廠類??梢园袸oC模式看做是工廠模式的升華,可以把IoC看作是一個(gè)大工廠,只不過這個(gè)大工廠里要生成的對(duì)象都是在XML文件中給出定義的,然后利用Java的“反射”編程,根據(jù)XML中給

3、出的類名生成相應(yīng)的對(duì)象。從實(shí)現(xiàn)來看,IoC是把以前在工廠方法里寫死的對(duì)象生成代碼,改變?yōu)橛蒟ML文件來定義,也就是把工廠和對(duì)象生成這兩者獨(dú)立分隔開來,目的就是提高靈活性和可維護(hù)性。IoC中最基本的Java技術(shù)就是“反射”編程。反射又是一個(gè)生澀的名詞,通俗的說反射就是根據(jù)給出的類名(字符串)來生成對(duì)象。這種編程方式可以讓對(duì)象在生成時(shí)才決定要生成哪一種對(duì)象。我在最近的一個(gè)項(xiàng)目也用到了反射,當(dāng)時(shí)是給出一個(gè).properties文本文件,里面寫

4、了一些全類名(包名+類名),然后,要根據(jù)這些全類名在程序中生成它們的對(duì)象。反射的應(yīng)用是很廣泛的,象Hibernate、String中都是用“反射”做為最基本的技術(shù)手段。在過去,反射編程方式相對(duì)于正常的對(duì)象生成方式要慢10幾倍,這也許也是當(dāng)時(shí)為什么反射技術(shù)沒有普通應(yīng)用開來的原因。但經(jīng)SUN改良優(yōu)化后,反射方式生成對(duì)象和通常對(duì)象生成方式,速度已經(jīng)相差不大了(但依然有一倍以上的差距)。所以要理解IoC,你必須先了解工廠模式和反射編程,否則對(duì)它

5、產(chǎn)生的前因后果和實(shí)現(xiàn)原理都是無法理解透徹的。只要你理解了這一點(diǎn),你自己也完全可以自己在程序中實(shí)現(xiàn)一個(gè)IoC框架,只不是這還要涉及到XML解析等其他知識(shí),稍微麻煩一些。IoC最大的好處是什么?因?yàn)榘褜?duì)象生成放在了XML里定義,所以當(dāng)我們需要換一個(gè)實(shí)現(xiàn)子類將會(huì)變成很簡單(一般這樣的對(duì)象都是現(xiàn)實(shí)于某種接口的),只要修改XML就可以了,這樣我們甚至可以實(shí)現(xiàn)對(duì)象的熱插撥(有點(diǎn)象USB接口和SCIS硬盤了)。IoC最大的缺點(diǎn)是什么?(1)生成一個(gè)對(duì)

6、象的步驟變復(fù)雜了(其實(shí)上操作上還是挺簡單的),對(duì)于不習(xí)慣這種方式的人,會(huì)覺得有些別扭和不直觀。(2)對(duì)象生成因?yàn)槭鞘褂梅瓷渚幊蹋谛噬嫌行p耗。但相對(duì)于IoC提高的維護(hù)性和靈活性來說,這點(diǎn)損耗是微不足道的,除非某對(duì)象的生成對(duì)效率要求特別高。(3)缺少IDE重構(gòu)操作的支持,如果在Eclipse要對(duì)類改名,那么你還需要去XML文件里手工去改了,這似乎是所有XML方式的缺憾所在。publicStringgetPsnName()returnp

7、snNamepublicvoidsetPsnName(StringpsnName)this.psnName=psnNamepublicvoidsetRefbean(RefBeanrefbean)this.refbean=refbeanpublicRefBeangetRefbean()returnrefbeanpublicvoidsetAddinfo(Stringaddinfo)this.addinfo=addinfoRefBean類:p

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論