国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JSP > 正文

淺析spring依賴(lài)注入的3種實(shí)現(xiàn)方式

2024-09-05 00:17:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
    在講解依賴(lài)注入的3種實(shí)現(xiàn)方式之前,這里先澄清一下依賴(lài)注入的意義:讓組件依賴(lài)于抽象,當(dāng)組件要與其他實(shí)際對(duì)象發(fā)生依賴(lài)關(guān)系時(shí),通過(guò)抽象來(lái)注入依賴(lài)的實(shí)際對(duì)象。
    依賴(lài)注入的3種實(shí)現(xiàn)方式分別是:接口注入(interface injection)、Set注入(setter injection)和構(gòu)造注入(constructor injection)。接下來(lái)筆者還將主要通過(guò)舉例的方式,把依賴(lài)注入的3種實(shí)現(xiàn)方式介紹給讀者。
    3.2.1  接口注入(interface injection)
    接口注入指的就是在接口中定義要注入的信息,并通過(guò)接口完成注入。結(jié)合前面的示例,其具體步驟如下。
(1)編寫(xiě)一個(gè)接口IBusiness,各種數(shù)據(jù)庫(kù)的注入將通過(guò)這個(gè)接口進(jìn)行。IBusiness.java的示例代碼如下:
//******* IBusiness.java**************
}
(2)任何想要使用數(shù)據(jù)庫(kù)實(shí)例的類(lèi)都必須實(shí)現(xiàn)這個(gè)接口,業(yè)務(wù)邏輯類(lèi)Business實(shí)現(xiàn)這個(gè)接口IBusiness。Business.java的示例代碼如下:
//******* Business.java************** 
                   this.db = db; 
         } 
         …… 
         //根據(jù)注入的數(shù)據(jù)庫(kù)類(lèi),從×××數(shù)據(jù)庫(kù)中獲取數(shù)據(jù) 
         public void getData() { 
                   …… 
                   db.getData(); 
                   …… 
         }
}
(3)編寫(xiě)測(cè)試類(lèi)TestBusiness。TestBusiness.java的示例代碼如下:
//******* TestBusiness.java**************
public class TestBusiness { 
         private Business business = new Business(); 
         …… 
         //根據(jù)注入的數(shù)據(jù)庫(kù)類(lèi),從Oracle數(shù)據(jù)庫(kù)中獲取數(shù)據(jù) 
         public void getData() { 
                   …… 
                   business. createDI (new OracleDataBase()); 
                   business.getData(); 
                   …… 
         }
}
如果要完成依賴(lài)關(guān)系注入的對(duì)象,必須實(shí)現(xiàn)IBusiness接口。
3.2.2  Set注入(setter injection)
Set注入指的就是在接受注入的類(lèi)中定義一個(gè)Set方法,并在參數(shù)中定義需要注入的元素。為了讓類(lèi)Business接受DataBase的注入,需要為它定義一個(gè)Set方法來(lái)接受DataBase的注入。Business.java的示例代碼如下:
//******* Business.java**************
public class Business { 
         private DataBase db; 
         public void setDataBase(DataBase db) { 
                   this.db = db; 
         } 
         …… 
         //根據(jù)注入的數(shù)據(jù)庫(kù)類(lèi),從×××數(shù)據(jù)庫(kù)中獲取數(shù)據(jù) 
         public void getData() { 
                   …… 
                   db.getData(); 
                   …… 
         }
}
更詳細(xì)的代碼,可以參看3.1節(jié)的第二個(gè)例子,采用的就是Set注入的方式。
3.2.3  構(gòu)造注入(constructor injection)
構(gòu)造注入指的就是在接受注入的類(lèi)中定義一個(gè)構(gòu)造方法,并在參數(shù)中定義需要注入的元素。為了讓類(lèi)Business接受DataBase的注入,需要為它定義一個(gè)構(gòu)造方法,來(lái)接受DataBase的注入。Business.java的示例代碼如下:
//******* Business.java**************
public class Business { 
         private DataBase db; 
         public Business (DataBase db) { 
                   this.db = db; 
         } 
         …… 
         //根據(jù)注入的數(shù)據(jù)庫(kù)類(lèi),從×××數(shù)據(jù)庫(kù)中獲取數(shù)據(jù) 
         public void getData() { 
                   …… 
                   db.getData(); 
                   …… 
         }
}

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东平县| 凌海市| 连州市| 云霄县| 安徽省| 眉山市| 进贤县| 邯郸县| 固镇县| 南宫市| 武冈市| 泸州市| 徐汇区| 车致| 诸城市| 宜良县| 综艺| 庆阳市| 旬阳县| 南投市| 宁城县| 宜兰市| 哈密市| 星子县| 东明县| 镇安县| 磐石市| 卢氏县| 旺苍县| 河间市| 黄浦区| 普兰店市| 梁河县| 仪陇县| 辉县市| 调兵山市| 临沧市| 额济纳旗| 达州市| 山西省| 沂源县|