Spring IOC容器和DI依賴注入

2021-10-23 19:46:38 字數 2609 閱讀 7522

inversion of control 控制反轉容器。

作用: 解決物件建立以及管理問題。

解析:

傳統關於物件建立:

user user = new user(); 自己控制物件的建立,自己宣告變數管理物件引用。

ioc:

需要物件,自己不建立,交給ioc容器建立並管理,需要的時候從ioc容器中獲取即可,這種情況就叫控制反轉。

實現:dependency injection 依賴注入。

建立物件處理依賴關係::就是指物件是被動接受依賴類而不是自己主動去找,換句話說就是指物件不是從容器中查詢它依賴的類,而是在容器例項化物件的時候主動將它依賴的類注入給它。

user user = new user();

address address = new address();

user.setaddress(address);//依賴注入

建立物件的幾種方式 : 

1) 呼叫無引數的構造方法

2) 呼叫有引數的構造方法,並通過構造方法賦值

3) 工廠模式( 靜態工廠, 非靜態工廠 )

4) 反射機制 (spring ioc 原理就是反射機制)

class user 

public user()

public void init()

public void destroy()

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

@override

public string tostring() }/

class use***ctory

//靜態

public static user getstaticinstace()

public static user getstaticinstace(string name, int age)

}

-->

/*反射機制*/

public static void main(string args)

} public static void main(string args) throws classnotfoundexception, nosuchmethodexception, securityexception,

instantiationexception, illegalacces***ception, illegalargumentexception, invocationtargetexception

}

給物件屬性賦值(di,依賴注入),幾種方式:

1) 構造方法賦值

2) setter方法注入

3) 內部bean寫法

4) p命名空間

5) 自動裝配

6) 註解方式

list, set, map和props元素分別用來設定型別為list,set,map和propertis的屬性值。分別用來為bean傳入集合值。

對應的spring的配置檔案舉例如下:

public   class  chinese  implements  people   ...
<? xml version="1.0" encoding="gb2312" ?>    

< beans >      

< bean  id ="chinese"  class ="chinese" > 

< list >    

< value > 張三     

< value > 李四     

< value > 王五     

< map >    

< entry  key ="數學" >    

< value > 60     

< entry  key ="英語" >    

< value > 70     

< entry  key ="語文" >    

< value > 80     

< entry  key ="物理" >    

< value > 90     

< entry  key ="化學" >    

< value > 95     

< props >    

< prop  key ="身高" > 165     

< prop  key ="體重" > 45kg     

< prop  key ="學歷" > 大學本科     

< set >    

< value > 唱歌     

< value > 跳舞     

< value > 書法     

Spring IOC和DI以及AOP理解

這三個概念可能大家都不陌生,在面試中經常會出現關於此類的問題,關於對他們的個人理解如下。ioc其實就是控制反轉,控制指的是物件的建立 管理 例項化權利,反轉指的是控制權交給了外部容器spring框架,打個比喻,我在專案中創造了乙個物件類,在業務層需要用到他了,一般的辦法是什麼?是不是new物件啊,畢...

有關springIOC 和DI自己的理解

在傳統開發中,我們需要進行分層開發web service 持久層,我們在web層通常需要乙個service服務通常是 在web層 uerservice userservice new userserviceimpl 折讓最然能夠在web層使用service層物件,但是會在程式中將 寫死,不利於後期的...

學習Spring IOC控制反轉和DI依賴注入總結

30歲的小曹,20歲的身體,還在堅持在能力允許控制範圍內22點睡覺,5點起床鍛鍊身體,好好學習,除了加班或者像今天這樣的深夜,再一次寫已經有x百萬人寫過的 spring ioc 的總結部落格。一 ioc 控制反轉詳解 1 傳統非spring管理時候的物件間呼叫依賴 我們都知道,隨便一本破框架的破書上...