IOC(inversion of control)是Spring的核心,貫穿始終。所謂IOC
就是有Spring來(lái)控制對(duì)象的生命周期和對(duì)象間的關(guān)系。
傳統(tǒng)開(kāi)發(fā)模式:對(duì)象之間相互依賴
IOC開(kāi)發(fā)模式:IOC控制對(duì)象之間的依賴
IOC是控制反轉(zhuǎn)。本來(lái)對(duì)象之間的關(guān)系式相互援用的,相對(duì)耦合度很高,1個(gè)對(duì)象的破壞可能會(huì)影響許多的對(duì)象,對(duì)象對(duì)其他對(duì)象的援用是自己控制的,如果把所以控制權(quán)都交給1個(gè)外部的第3方,統(tǒng)1管理利用,就實(shí)現(xiàn)了控制反轉(zhuǎn),下降了耦合度。
DI(dependency injection)。所謂的依賴注入就是IOC容器在運(yùn)行期間,動(dòng)態(tài)的將某種依賴關(guān)系注入到對(duì)象當(dāng)中。所以依賴注入和控制反轉(zhuǎn)是從不同角度描寫(xiě)的同1件事情。通過(guò)引入IOC容器,通過(guò)援用對(duì)象依賴注入的方式來(lái)實(shí)現(xiàn)對(duì)象之間的解耦。
IOC不會(huì)對(duì)業(yè)務(wù)有很強(qiáng)的侵入性,是對(duì)象具有更好的可實(shí)用性,可重用性,可擴(kuò)大性。
1.下降組件之間的耦合度。
2.提高產(chǎn)品的開(kāi)發(fā)效力和質(zhì)量。
3.統(tǒng)1標(biāo)準(zhǔn),提高模塊的復(fù)用性。
4.模塊具有熱插拔的特性。
IOC控制反轉(zhuǎn):
創(chuàng)建對(duì)象實(shí)例的控制權(quán)從代碼轉(zhuǎn)移到IOC容器控制,實(shí)際就是xml文件控制,側(cè)重于原理。
DI依賴注入:
說(shuō)的是創(chuàng)建對(duì)象時(shí),為這個(gè)對(duì)象注入屬性值和其他對(duì)象實(shí)例,側(cè)重于實(shí)現(xiàn)。