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自己來控制其實例化 直接在構造器中指定依賴關係或者...