淺析spring依賴注入的3種實現(xiàn)方式_JSP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:詳談Java如何進階本來我想把這篇文章的名字命名為:怎樣成為一個優(yōu)秀的Java程序員的,但是自己還不夠優(yōu)秀,而本篇所涉及的都是自己學習和工作中的一些經(jīng)驗,后來一想,叫怎樣進階Java可能更為合適吧.能給初學Java的人一個參考,也就是我本來的心愿.如果有大牛看到不妥之處,敬請指正
在講解依賴注入的3種實現(xiàn)方式之前,這里先澄清一下依賴注入的意義:讓組件依賴于抽象,當組件要與其他實際對象發(fā)生依賴關系時,通過抽象來注入依賴的實際對象。依賴注入的3種實現(xiàn)方式分別是:接口注入(interface injection)、Set注入(setter injection)和構造注入(constructor injection)。接下來筆者還將主要通過舉例的方式,把依賴注入的3種實現(xiàn)方式介紹給讀者。
3.2.1 接口注入(interface injection)
接口注入指的就是在接口中定義要注入的信息,并通過接口完成注入。結合前面的示例,其具體步驟如下。
(1)編寫一個接口IBusiness,各種數(shù)據(jù)庫的注入將通過這個接口進行。IBusiness.java的示例代碼如下:
//******* IBusiness.java**************
}
(2)任何想要使用數(shù)據(jù)庫實例的類都必須實現(xiàn)這個接口,業(yè)務邏輯類Business實現(xiàn)這個接口IBusiness。Business.java的示例代碼如下:
//******* Business.java**************
this.db = db;
}
……
//根據(jù)注入的數(shù)據(jù)庫類,從×××數(shù)據(jù)庫中獲取數(shù)據(jù)
public void getData() {
……
db.getData();
……
}
}
(3)編寫測試類TestBusiness。TestBusiness.java的示例代碼如下:
//******* TestBusiness.java**************
public class TestBusiness {
private Business business = new Business();
……
//根據(jù)注入的數(shù)據(jù)庫類,從Oracle數(shù)據(jù)庫中獲取數(shù)據(jù)
public void getData() {
……
business. createDI (new OracleDataBase());
business.getData();
……
}
}
如果要完成依賴關系注入的對象,必須實現(xiàn)IBusiness接口。
3.2.2 Set注入(setter injection)
Set注入指的就是在接受注入的類中定義一個Set方法,并在參數(shù)中定義需要注入的元素。為了讓類Business接受DataBase的注入,需要為它定義一個Set方法來接受DataBase的注入。Business.java的示例代碼如下:
//******* Business.java**************
public class Business {
private DataBase db;
public void setDataBase(DataBase db) {
this.db = db;
}
……
//根據(jù)注入的數(shù)據(jù)庫類,從×××數(shù)據(jù)庫中獲取數(shù)據(jù)
public void getData() {
……
db.getData();
……
}
}
更詳細的代碼,可以參看3.1節(jié)的第二個例子,采用的就是Set注入的方式。
3.2.3 構造注入(constructor injection)
構造注入指的就是在接受注入的類中定義一個構造方法,并在參數(shù)中定義需要注入的元素。為了讓類Business接受DataBase的注入,需要為它定義一個構造方法,來接受DataBase的注入。Business.java的示例代碼如下:
//******* Business.java**************
public class Business {
private DataBase db;
public Business (DataBase db) {
this.db = db;
}
……
//根據(jù)注入的數(shù)據(jù)庫類,從×××數(shù)據(jù)庫中獲取數(shù)據(jù)
public void getData() {
……
db.getData();
……
}
}
分享:總結Hibernate經(jīng)驗0、雙向關聯(lián)中最好是設置一端inverse=true,一端inverse=false。一般inverse=false會放在多的一端,即由多的一方來維護關系,并在多的一方設置cascade=save-update,在單的一方設置cascade=all。 1、使用Hibernate的idgenerator來生成無業(yè)務意義的主鍵
相關JSP教程:
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復習整理
- JSP腳本元素和注釋復習總結示例
- JSP FusionCharts Free顯示圖表 具體實現(xiàn)
- 網(wǎng)頁模板:關于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關鏈接:
- 教程說明:
JSP教程-淺析spring依賴注入的3種實現(xiàn)方式。