




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一、依賴注入(I簡介依賴注入背后的基本原理是對象之間的依賴關(guān)系可以通過以下幾種方式來實(shí)現(xiàn):構(gòu)造器的參數(shù)、工廠方法的參數(shù),或給由構(gòu)造函數(shù)或者工廠方法創(chuàng)建的對象設(shè)置屬性。因此,容器的工作就是創(chuàng)建時(shí)注入那些依賴關(guān)系。相對于由自己來控制其實(shí)例化、直接在構(gòu)造器中指定依賴關(guān)系或者類似服務(wù)定位器模式這3種自主控制依賴關(guān)系注入的方法來說,控制從根本上發(fā)生了倒轉(zhuǎn),這也正是控制反轉(zhuǎn)名字的由來。依賴注入主要有兩種注入方式,即構(gòu)造器注入和注入。二、構(gòu)造器注入基于構(gòu)造器的依賴注入是通過調(diào)用帶參數(shù)的構(gòu)造器來實(shí)現(xiàn),每個(gè)參數(shù)代表著一個(gè)依賴。下面展示了用構(gòu)造器參數(shù)來注入依賴關(guān)系的例子。先創(chuàng)建一個(gè)對象代碼_需要/一/個(gè)默認(rèn)無參構(gòu)
2、造器,實(shí)例化再修改配置文件代碼星最后測試是否能夠得到注入的,并打印出對象的屬性。代碼_讀取配/置/文件,獲得三、注入通過調(diào)用無參構(gòu)造器或無參工廠方法實(shí)例化之后,調(diào)用該的方法,即可實(shí)現(xiàn)基于的依賴注入。創(chuàng)建一個(gè)對象代碼門修改配置文件C實(shí)例化代碼-測試類,獲得注入的代碼-讀取配置文件,實(shí)例化容器處理依賴關(guān)系通常按以下步驟進(jìn)行:根據(jù)定義的配置創(chuàng)建并初始化實(shí)例每個(gè)的依賴將以屬性、構(gòu)造器參數(shù)、或靜態(tài)工廠方法參數(shù)的形式出現(xiàn)。當(dāng)這些被實(shí)際創(chuàng)建時(shí),這些依賴也將會提供給該。每個(gè)屬性或構(gòu)造器參數(shù)既可以是一個(gè)實(shí)際的值,也可以是對該容器中另一個(gè)的引用。每個(gè)指定的屬性或構(gòu)造器參數(shù)值必須能夠被轉(zhuǎn)換成特定的格式或構(gòu)造參數(shù)所需
3、的類型。會在容器被創(chuàng)建時(shí)驗(yàn)證容器中每個(gè)的配置,包括驗(yàn)證那些所引用的屬性是否指向一個(gè)有效的。在被實(shí)際創(chuàng)建之前,的屬性并不會被設(shè)置。伴隨著被實(shí)際創(chuàng)建,作為該的依賴以及依賴的依賴也將被創(chuàng)建和分配。依賴注入的3種實(shí)現(xiàn)方式分別是:接口注入(interfaceinjection)、Set注入(setterinjection)和構(gòu)造注入(constructorinjection)。接下來筆者還將主要通過舉例的方式,把依賴注入的3種實(shí)現(xiàn)方式介紹給讀者。接口注入(interfaceinjection)接口注入指的就是在接口中定義要注入的信息,并通過接口完成注入。結(jié)合前面的示例,其具體步驟如下。編寫一個(gè)接口IBu
4、siness,各種數(shù)據(jù)庫的注入將通過這個(gè)接口進(jìn)行。IBusiness.java的示例代碼如下:/*IBusiness.java*publicinterfaceIBusinesspublicvoidcreateDI(DataBasedb);任何想要使用數(shù)據(jù)庫實(shí)例的類都必須實(shí)現(xiàn)這個(gè)接口,業(yè)務(wù)邏輯類Business實(shí)現(xiàn)這個(gè)接口IBusiness。Business.java的示例代碼如下:/*Business.java*publicclassBusinessimplementIBusinessprivateDataBasedb;publicvoidcreateDI(DataBasedb)this.db
5、=db;根據(jù)注入的數(shù)據(jù)庫類,從XXX數(shù)據(jù)庫中獲取數(shù)據(jù)publicvoidgetData()db.getData();(3)編寫測試類TestBusiness。TestBusiness.java的示例代碼如下:/*TestBusiness.java*publicclassTestBusinessprivateBusinessbusiness=newBusiness();/根據(jù)注入的數(shù)據(jù)庫類,從Oracle數(shù)據(jù)庫中獲取數(shù)據(jù)publicvoidgetData()business.createDI(newOracleDataBase();business.getData();如果要完成依賴關(guān)系注入的對
6、象,必須實(shí)現(xiàn)IBusiness接口。Set注入(setterinjection)Set注入指的就是在接受注入的類中定義一個(gè)Set方法,并在參數(shù)中定義需要注入的元素。為了讓類Business接受DataBase的注入,需要為它定義一個(gè)Set方法來接受DataBase的注入。Business.java的示例代碼如下:/*Business.java*publicclassBusinessprivateDataBasedb;publicvoidsetDataBase(DataBasedb)this.db=db;/根據(jù)注入的數(shù)據(jù)庫類,從XXX數(shù)據(jù)庫中獲取數(shù)據(jù)publicvoidgetData()db.getData();更詳細(xì)的代碼,可以參看3.1節(jié)的第二個(gè)例子,采用的就是Set注入的方式。構(gòu)造注入(constructorinjection)構(gòu)造注入指的就是在接受注入的類中定義一個(gè)構(gòu)造方法,并在參數(shù)中定義需要注入的元素。為了讓類Business接受DataBase的注入,需要為它定義一個(gè)構(gòu)造方法,來接受DataBase的注入。Business.java的示例代碼如下:/*Business.java*publicclassBusinesspriv
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海西蒙古族藏族自治州天峻縣2025年數(shù)學(xué)五年級第二學(xué)期期末監(jiān)測模擬試題含答案
- 貴州電子商務(wù)職業(yè)技術(shù)學(xué)院《EDA技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽現(xiàn)代信息工程職業(yè)學(xué)院《中國古代文學(xué)史(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省濰坊市臨朐一中2025年高三下學(xué)期第三次驗(yàn)收物理試題理試卷含解析
- 黑龍江東方學(xué)院《商務(wù)數(shù)據(jù)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 閥島箱:現(xiàn)代工業(yè)中的氣動控制核心
- 廣州城市職業(yè)學(xué)院《畫法幾何與建筑制圖》2023-2024學(xué)年第二學(xué)期期末試卷
- 共享職工之家建設(shè)存在問題和原因以及對策建議
- 美容院環(huán)境滿意度調(diào)查
- 抗滑樁工程施工方案
- 《民航客艙設(shè)備操作與管理》課件-項(xiàng)目二 客艙服務(wù)設(shè)備
- JT-T 1495-2024 公路水運(yùn)危險(xiǎn)性較大工程專項(xiàng)施工方案編制審查規(guī)程
- 03 寫景狀物文章-2023-2024學(xué)年五年級語文閱讀專項(xiàng)試題(統(tǒng)編版) 教師版2
- 普通外科臨床路徑(2019年版)
- 孕產(chǎn)婦健康知識講座活動總結(jié)
- 天貓店鋪規(guī)劃方案
- 中國古代文學(xué)的人文關(guān)懷與社會責(zé)任
- 飾面人造板產(chǎn)品質(zhì)量
- 北京市校外教育機(jī)構(gòu)工作規(guī)程實(shí)施細(xì)則
- 說課的技巧和方法專題講座
- 教師專業(yè)發(fā)展與教育教學(xué)質(zhì)量提升的關(guān)系研究
評論
0/150
提交評論