spring的IOC(Inversion of Control,控制反轉(zhuǎn))是spring的核心,那么控制的是什么,反轉(zhuǎn)的是什么,是誰(shuí)來(lái)做的。
在spring之前,假設(shè)有A、B兩個(gè)類(lèi),A需要調(diào)用B類(lèi)中的方法,這需要在A中實(shí)例化B即由調(diào)用者實(shí)例所需要的類(lèi);那么使用spring了,創(chuàng)建對(duì)象的工作就交個(gè)spring的IOC容器去做了,就不需要調(diào)用者自己去實(shí)現(xiàn)了。spring的IOC容器會(huì)初始化所需的對(duì)象(各種各樣的Bean),當(dāng)調(diào)用者需要時(shí)就將容器中的對(duì)象注入到調(diào)用者中,就像打針一樣(哈哈,皮一下),這就是DI(依賴注入,實(shí)現(xiàn)基礎(chǔ)是反射)??梢?jiàn)對(duì)象的創(chuàng)建、對(duì)象的生命周期等都是IOC容器來(lái)維護(hù),對(duì)象之間的耦合性降低,實(shí)現(xiàn)了解耦。