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