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管理時候的物件間呼叫依賴 我們都知道,隨便一本破框架的破書上...