目錄
注入(injection)
什麼是注入:
基礎型別注入詳情:
使用者自定義型別(物件型別)
構造注入
注入總結:
反轉控制與依賴注入:
1,spring通過spring工廠及其配置檔案,為物件的成員變數賦值。普通**(通過手動書寫**呼叫getter和setter賦值)
2,如何進行注入(開發步驟)
1,類的成員變數提供相應的setter和getter方法。2,在spring配置檔案中配置。
呼叫結果:
實質上是通過get和set方式賦值(你可以在get和set方法上新增一句話輸出試試)
3,注入的好處:解耦合(一開始賦值是在**中set,現在是xml中配置);
原理分析:反射。
8中基本型別+string直接在value屬性或者標籤中書寫即可。
string,int,string,list,map,properties。
public class kindsvalue
xml配置檔案配置如下:
alice
jack
12345611
2233
value1
value2
test**如下:
/**
* 用於測試:spring屬性注入
*/@org.junit.test
public void test2()
system.out.println("set");
for (integer integer : kindsvalue.getset())
system.out.println("list");
for (integer integer : kindsvalue.getlist())
system.out.println("map");
iterator> iterator = kindsvalue.getmap().entryset().iterator();
while(iterator.hasnext())
system.out.println("properties");
properties properties = kindsvalue.getproperties();
system.out.println("key1 "+properties.get("key1"));
system.out.println("key2 "+properties.get("key2"));
}
結果如下:
最重要的就是外面的標籤!
複雜的jdk型別如date(spring內建的處理string->date格式 類似於:2020/08/25)
建立物件型別:
public inte***ce iuserdao
public inte***ce iuserservice
public class userdaoimpl implements iuserdao
@override
public void query(string name)
}public class userserviceimpl implements iuserservice
public void setuserdao(iuserdao userdao)
@override
public void register(person person)
@override
public void login(string name)
}
xml配置:
test**:
/**
* 測試:自定義型別的注入
*/@org.junit.test
public void test3()
結果:
顧名思義:就是應用構造方法的注入。
注入:通過spring的配置檔案,為成員變數賦值;
前面學的是setter注入。spring中呼叫set方法,通過配置檔案 為成員變數賦值
而構造注入則是在構造方法中 spring呼叫構造方法 通過配置檔案 為成員賦值
例如給person類構造注入:必須有多參的構造方法。
配置檔案:
結果:
若要給某個引數構造注入時,要指定型別(type屬性)。
特別的:構造注入和set注入同時存在時,set注入會把構造注入給覆蓋掉。
兩種注入:set注入和構造注入。推薦set注入。因為構造注入會有方法的過載,比較麻煩。(spring自己也有注入的需求,它用的就是set注入)。
1,反轉控制 -ioc(inverse of control)控制:指的是對 物件屬性的賦值的控制。以前在**中手動賦值。現在:spring框架自動賦值。
2,依賴注入(dependency injection -di)注入:通過spring工廠及其配置檔案,為物件bean,component的成員賦值。
依賴注入:當乙個類需要另乙個類時,就意味著依賴,一旦出現依賴,就可以把另乙個物件作為本類的成員變數,最終通過spring配置檔案進行注入(賦值)。
Spring 依賴注入(IoC) 控制反轉
依賴注入 dependecy injection 和控制反轉 inversion of control 是同乙個概念,具體的講 當某個角色需要另外乙個角色協助的時候,在傳統的程式設計過程中,通常由呼叫者來建立被呼叫者的例項。但在spring中 建立被呼叫者的工作不再由呼叫者來完成,因此稱為控制反轉。...
Spring的IOC(依賴注入和控制反轉)
spring框架面試筆試必問之一!非常重要也非常強大,說實話一開始仿照著spring mvc配置搭建起來,再寫幾句增刪改查,真的配不上叫做學會了那個框架。框架是n種優秀的設計模式和一些很高深的技術組合在一起的完美的精緻的產物!誰在剛畢業的時候,都會去背ioc的概念,背來背去,還是稀里糊塗,就算背的滾...
Spring控制反轉IOC和依賴注入DI結構化簡述
spring婚介所 spring國規定不允許自己私人找物件 官方約定,不犯法,但是會亂了spring國的正常婚配原則 並且每個人在喝孟婆湯投胎前spring國都會要他將自己資訊以及自己所需什麼樣子的物件登記到婚姻介紹所再喝孟婆湯投胎.投胎後婚介所會根據你的需求幫你把物件給你當然如果你物件還沒投胎你得...