程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> spring依賴注入的3種實現方式

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

編輯:關於JSP

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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved