這兩天看了spring關於IOC容器一章內容,看完以後腦殼簡直亂成一團,不少專業名詞都不懂什麼意思,完了以後我仍是不懂到底什麼是IOC控制反轉以及依賴注入!雖然我結合了本身公司的項目去看了一下spring的配置,而且把本身搭建的spring框架錯誤也解決了,可是我仍是不懂,什麼是IOC控制反轉,什麼是依賴注入呢?spring
隨後我在網上找了一些資料,大體的意思我算是給搞清了70%,如今寫下本身對這二者的理解,假如還有更新的認識,會繼續更新這篇博文。框架
IOC控制反轉:在原來調用者要調用一個對象的時候,調用者就須要給被調用者建立對象,而後用了spring以後,調用者不須要給被調用建立對象了,這些工做所有交給了spring,這個就是IOC控制反轉。對象
依賴注入:何爲依賴?spring對依賴的理解是二者的以後的關係,好比A調用B,則A對B有依賴關係。何爲注入呢?好比我使用@Repository把一個UserDao設爲一個bean,當我在另一個類須要調用它的時候,我就須要@Autowire去bean容器中查找UserDao類型的bean,假如找到了,則直接注入到調用類裏面,被調用者是自動注入進去的;這樣的好處是什麼呢?下面我用一個例子來講一下:it
原來很古老的年代,樵夫須要一個斧頭的時候須要本身去打造一個斧頭。這就至關於原來咱們要調用一個類的時候,咱們須要爲其建立一個對象才能使用。容器
到了近代,樵夫須要一個斧頭的時候,他須要去特別的工廠挑選本身想要的斧頭,他不須要本身作了,有工廠代工爲它建立一個斧頭。這就是工廠模式,配置
到了如今,樵夫須要一個斧頭的時候,他只須要坐在家裏告訴別人我須要一個斧頭,就能直接擁有一個斧頭,並不須要去工廠裏面挑選了,這就是IOC容器的整個意思。調用者須要一個對象的時候,只須要一個註解,就能夠得到它須要的那個對象,spring直接去bean容器中爲它找到這個對象,讓它們之間創建鏈接。依賴注入
我所理解大體這些,應該也有理解錯誤的地方,往後我有更多的理解了,會修改博文的。項目