Spring依賴注入的三種方式

 

  1. 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接口。
     

  2. 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. 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();
    ……
    }
    }

轉自:http://blog.sina.com.cn/s/blog_5cd7f5b40100tef5.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章