IOC是一種通過(guò)描述來(lái)生成或者獲取對(duì)象的技術(shù),對(duì)于Java初學(xué)者更熟悉的是使用new關(guān)鍵字來(lái)創(chuàng)建對(duì)象,而在Spring中,它是通過(guò)描述來(lái)創(chuàng)建對(duì)象。
一個(gè)系統(tǒng)可以生成各種對(duì)象,并且這些對(duì)象都需要管理,另外,對(duì)象之間并不是孤立的,它們之間還可能存在一些依賴關(guān)系。例如一個(gè)班級(jí)由多個(gè)老師和學(xué)生組成,那么班級(jí)就依賴于老師和學(xué)生了。因此,Spring還提供了依賴注入功能,使得我們通過(guò)描述來(lái)管理各個(gè)對(duì)象之間的關(guān)系。
為了描述上述的班級(jí)、學(xué)生和老師這三個(gè)對(duì)象關(guān)系,我們需要一個(gè)容器。在Spring中把每一個(gè)需要管理的對(duì)象稱為Spring bean成為(簡(jiǎn)稱Bean),而Spring管理這些bean的容器,被我們稱為Spring?IoC容器。IoC容器具備兩個(gè)基本的功能:
1、通過(guò)描述管理bean,包括發(fā)布和獲取bean
2、通過(guò)描述完成bean之間的依賴關(guān)系