Spring簡單入門(二) 依賴注入DI

2021-10-08 09:50:04 字數 1783 閱讀 1685

什麼是依賴注入?通俗來說,就是建立乙個物件時,把其成員變數也都給賦值。而注入方式主要有3種:①原理是通過類的建構函式來建立的(基於xml)。②原理是通過類的set方法來構造的(基於xml)。③就是通過註解的方式來獲得。當然根據注入資料的不同,每種方式又有不同的方法:①基本資料和string型別、②ioc中註冊的bean型別、③array、list、set、map、properties等複雜型別

注:依賴注入是在ioc的基礎上進行的,即無論採用何種方式進行注入,首先得把ioc相關的東西寫好。(詳情可見

首先,既然是通過類的建構函式,那麼類必須要有乙個對應的建構函式

public class student 

//關鍵

public student(string name)

@override

public string tostring()

}

通過建構函式是在配置檔案中的標籤下使用子標籤,屬性值name是成員變數的名稱(成員變數和name值的首字母最好都小寫,符合命名規範),不同的資料型別使用不同的屬性值來進行注入:

基本資料型別和string型別,使用value屬性來指定

ioc中存在的bean,使用ref屬性來指定

複雜型別的資料,在標籤下面還有對應型別的子標籤。array、list、set都是使用該型別的子標籤的標籤體來加入基本資料型別及其包裝類或者string,或者來指定bean(array、list、set可以混用)

對於map和properties也可以混用,因此記住map即可。

如果是基本資料型別或者string,則將key-ref或value-ref改為key或者value

通過構造方法注入,雖然可行,但是需要建立乙個構造方法,而有時候構造方法不便對外可見。因此,就出現了另一種方法即通過set方法。因此類中必須有對應的set方法

(注:按照命名規範是沒有問題的,但是實際上是呼叫了set***()方法,***是你指定的name的首字母大寫)

通過set方法注入配置只是將換成了

註解注入你也可以在xml中註冊下bean,然後再再類上使用註解注入(要開啟註解掃瞄)

首先是介紹相關的註解。第乙個是@value("值"),使用在基本資料型別或者string型別上。

@value("moze")

string name;

註解不能夠給複雜資料型別注入。因此現在只剩bean資料了,其較為複雜,共分為三個,@autowired、@qualifier、@resource。這三個使用方法是一致的,但是原理有所不同

@autowired

cat cat;

@autowired:自動按照型別注入。如果說ioc中只有乙個該型別或者實現類的物件,那麼匹配該物件。如果有多個,那就按照類的物件名去ioc容器中匹配對應的id,如果找到則注入,找不到則返回。

@qualifier("id"):必須與autowired連用,先按照型別匹配,有多個匹配的後,會使用id(而不是物件名)去匹配ioc容器

@resource(name="id"):先按照id來匹配,如果匹配失敗,再按照型別匹配。

因此@resource和@autowired使用較多,且@resource較為方便

總結:至此能夠完成物件的注入

spring 依賴注入 Spring依賴注入

依賴注入 dependency injection,簡稱di 與控制反轉 ioc 的含義相同控制反 在使用spring框架之後,物件的例項不再由呼叫者來建立,而是由spring容器來建立,spring容器會負責控制程式之間的關係,而不是由呼叫者的程式 直接控制,這樣控制權由應用程式轉移到了sprin...

Spring 入門(3)依賴注入

1.依賴注入 2.依賴注入解釋 先看一下沒有使用依賴注入的時候我們的 我們舉例 個人 類,華為手機類,人需要使用手機。如下 package di public class person public void play package di public class huaweiphone impl...

簡單介紹Spring依賴注入 DI

依賴注入就是指spring容器在建立被呼叫者的例項時,會自動地把呼叫者需要的物件例項注入給呼叫者,這樣呼叫者就可以通過spring容器直接獲取到被呼叫者的例項。假設在spring框架下,當乙個物件例項a需要呼叫到另乙個物件例項b時,spring容器就會自動建立乙個例項b,並將這個例項b通過不同的注入...