熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

spring依賴注入的3種實現方式

2013-11-15 12:01:55  來源: JSP教程 

  在講解依賴注入的種實現方式之前這裡先澄清一下依賴注入的意義讓組件依賴於抽象當組件要與其他實際對象發生依賴關系時通過抽象來注入依賴的實際對象
    依賴注入的種實現方式分別是接口注入(interface injection)Set注入(setter injection)和構造注入(constructor injection)接下來筆者還將主要通過舉例的方式把依賴注入的種實現方式介紹給讀者
      接口注入(interface injection)
    接口注入指的就是在接口中定義要注入的信息並通過接口完成注入結合前面的示例其具體步驟如下
)編寫一個接口IBusiness各種數據庫的注入將通過這個接口進行IBusinessjava的示例代碼如下
//******* IBusinessjava**************
}
)任何想要使用數據庫實例的類都必須實現這個接口業務邏輯類Business實現這個接口IBusinessBusinessjava的示例代碼如下
//******* Businessjava************** 
                   thisdb = db; 
         } 
         …… 
         //根據注入的數據庫類從×××數據庫中獲取數據 
         public void getData() { 
                   …… 
                   dbgetData(); 
                   …… 
         }
}
)編寫測試類TestBusinessTestBusinessjava的示例代碼如下
//******* TestBusinessjava**************
public class TestBusiness { 
         private Business business = new Business(); 
         …… 
         //根據注入的數據庫類從Oracle數據庫中獲取數據 
         public void getData() { 
                   …… 
                   business createDI (new OracleDataBase()); 
                   businessgetData(); 
                   …… 
         }
}
如果要完成依賴關系注入的對象必須實現IBusiness接口
  Set注入(setter injection)
Set注入指的就是在接受注入的類中定義一個Set方法並在參數中定義需要注入的元素為了讓類Business接受DataBase的注入需要為它定義一個Set方法來接受DataBase的注入Businessjava的示例代碼如下
//******* Businessjava**************
public class Business { 
         private DataBase db; 
         public void setDataBase(DataBase db) { 
                   thisdb = db; 
         } 
         …… 
         //根據注入的數據庫類從×××數據庫中獲取數據 
         public void getData() { 
                   …… 
                   dbgetData(); 
                   …… 
         }
}
更詳細的代碼可以參看節的第二個例子采用的就是Set注入的方式
  構造注入(constructor injection)
構造注入指的就是在接受注入的類中定義一個構造方法並在參數中定義需要注入的元素為了讓類Business接受DataBase的注入需要為它定義一個構造方法來接受DataBase的注入Businessjava的示例代碼如下
//******* Businessjava**************
public class Business { 
         private DataBase db; 
         public Business (DataBase db) { 
                   thisdb = db; 
         } 
         …… 
         //根據注入的數據庫類從×××數據庫中獲取數據 
         public void getData() { 
                   …… 
                   dbgetData(); 
                   …… 
         }
}


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20117.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.