框架面試題:談談我對Spring IOC與DI的理解


IOC是一種叫做“控制反轉”的設計思想。

1、較淺的層次——從名字上解析 
“控制”就是指對 對象的創建、維護、銷毀等生命周期的控制,這個過程一般是由我們的程序去主動控制的,如使用new關鍵字去創建一個對象(創建),在使用過程中保持引用(維護),在失去全部引用后由GC去回收對象(銷毀)。 
反轉”就是指對 對象的創建、維護、銷毀等生命周期的控制由程序控制改為由IOC容器控制,需要某個對象時就直接通過名字去IOC容器中獲取。

2、更深的層次——提到DI,依賴注入,是IOC的一種重要實現 
一個對象的創建往往會涉及到其他對象的創建,比如一個對象A的成員變量持有着另一個對象B的引用,這就是依賴,A依賴於B。IOC機制既然負責了對象的創建,那么這個依賴關系也就必須由IOC容器負責起來。負責的方式就是DI——依賴注入,通過將依賴關系寫入配置文件,然后在創建有依賴關系的對象時,由IOC容器注入依賴的對象,如在創建A時,檢查到有依賴關系,IOC容器就把A依賴的對象B創建后注入到A中(組裝,通過反射機制實現),然后把A返回給對象請求者,完成工作。

3、IOC的意義何在? 
IOC並沒有實現更多的功能,但它的存在使我們不需要很多代碼、不需要考慮對象間復雜的耦合關系就能從IOC容器中獲取合適的對象,而且提供了對 對象的可靠的管理,極大地降低了開發的復雜性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM