依賴注入方式

2021-09-25 22:09:01 字數 3338 閱讀 4527

spring框架

開門見山,這篇部落格詳細講一講這個依賴注入的方式,let 's go

set方法    有參構造    介面…

那麼,我們的spring容器依賴注入也將採用set方法和有參構造這兩種方式進行。

還有一點,di依賴注入的方式:1、配置    2、註解

以下所做皆在控制反轉步驟的基礎之上。沒有看控制反轉步驟的戳這裡

配置:1、有參構造

"boss3"

class

="boss"

>

"name" value=

"zs"

/>

<

/bean>

//在bean標籤內使用constructor-arg對有參構造引數賦值

//name為引數名 value為你給定的引數值

//引用型別的引數後面介紹

2、set方法

"boss4"

class

="boss"

>

"name" value=

"ls"

/>

<

/bean>

//在bean標籤內使用property對set方法傳參賦值

//同理name為引數名 value為你給定的引數值

3、引用型別注入既然我們能給當前物件賦值,那麼引用型別我們就先給賦值一次,賦值之後,我們將bean標籤下的id拿過來給我們的引用型別作為值傳進去。

//car為乙個類,boss類裡有這麼car的物件

"car"

class

="car"

>

"color" value=

"red"

/>

"type" value=

"bmw"

/>

<

/bean>

"boss5"

class

="boss"

>

"name" value=

"ls"

/>

"car" ref=

"car"

/>

<

/bean>

//我們使用ref對引用資料型別傳參,引數為bean標籤的id

那麼,需要注意的是:使用有參構造,那麼實體類裡就要有有參構造方法;set方法同理。要不然,spring找不到則會丟擲異常!!!

同樣應對陣列型別和list型別,我們的property標籤內有array、list、map…標籤

註解:註解首先需要導個包:

commons-logging

接下來的事情是重新建乙個xml檔案(我叫它spring-config-annotation.xml),把之前建立的檔案的頭部beans複製過來

//加上這兩行

然後在beans標籤內開啟掃瞄

//base-package表示掃瞄的位置(相對於sources root的路徑)

//我的是掃瞄com下的全部註解

package

="com"

/>

接下來該寫註解了…1.@component註解寫到實體類前@component(value = 「boss」)

public class boss{}

使用getbean(「boss」)

得到boss類物件

2.@value(引數)進行普通型別賦值

@value(「zs」)

public string name;

3.@autowired 或 @resource進行(引用型別)賦值

@autowired是自動裝配,自動找到對應的物件類進行賦值,但遇到多個物件時,便無法進行區分

@resource(name=「引數」)是根據name的引數尋找物件進行賦值

來看一看具體用法:

//這個老闆開了一輛黃色的蘭博基尼(a rich man)

接下來分別是兩種註解的使用

@component

(value =

"boss"

)public

class

boss

@component

(value =

"boss"

)public

class

boss

既然說@autowired不能識別同型別的物件

那麼怎麼才能和@resource一樣可以識別呢???

@autowired

@qualifier

("car"

)public car car;

@resource

(name=

"car"

)public car car;

加乙個@qualifier便可以做到和@resource相同了。

注意:

使用註解這種方式,我們便不再需要那些亂七八糟的構造方法和get/set方法。刪掉它們即可(不刪也無所謂)

那麼,依賴注入的兩種方式也就到此結束

控制反轉步驟

回到 》

控制反轉與依賴注入

依賴注入的方式

手工注入 bean id textprinter class com.neusoft.test.spring.impl.textprinter constructor arg index 0 refbean formaterbean constructor arg constructor arg i...

Spring Spring 依賴注入方式

這一節主要通過乙個例項來展現幾種注入方式的區別 有兩個元件a和b,a依賴於b。假定a是乙個類,且a有乙個方法importantmethod使用到了b.要使用b,類a必須先獲得元件b的例項引用。若b是乙個具體類,則可通過new關鍵字直接建立元件b的例項。但是,如果b是介面,且有多個實現,則問題就變得複...

Spring依賴注入方式

b 一 依賴注入 di 簡介 b 依賴注入背後的基本原理是物件之間的依賴關係,可以通過以下幾種方式來實現 構造器的引數 工廠方法的引數,或給由建構函式或者工廠方法建立的物件設定屬性。因此,容器的工作就是建立bean時注入那些依賴關係。相對於由bean自己來控制其實例化 直接在構造器中指定依賴關係或者...