Spring的IOC是什麼?一個婚姻介紹所

Spring是java開發中經常會用到的一個框架。

面試中自然也就會經常問到Spring的相關問題。

Spring的AOP和IOC便在這些常被問到的問題之列。

Spring的AOP相關的內容之前有寫過《

spring的aop揭秘,動態代理之JDK動態代理

》和《

spring的aop揭秘,動態代理之Cglib動態代理

》這兩篇文章,有興趣的朋友可以翻閱一下。

Spring的IOC是什麼?一個婚姻介紹所

spring——春天

今天就說說Spring的另一個特點IOC。

Spring的IOC,是控制反轉(Inversion of Control)。可是什麼是控制翻轉呢。

我剛開始學習的時候,覺得這個點是很難理解。不知道大家是否也這麼認為。

那先說說如果不用Spring的話,我們自己怎麼控制Bean物件呢。

是不是下面這樣呢。

Spring的IOC是什麼?一個婚姻介紹所

這段程式碼中我們的Boy是依靠自己的能力去找到自己的Girl物件的(自己去new了一個物件,有沒有想到一個段子,軟體工程師不缺物件,需要就new一個)。

自己需要的物件完全依靠自己控制去建立。

而Spring的IOC(控制反轉)是怎麼做的呢。

還用這個Boy來說吧。

我們的Boy不再需要自己new一個Girl物件了,只需要提出條件(什麼型別或者是Bean物件的名字等)。Spring就會自動從自己管理的Bean物件中找到符合條件的物件分配給我們Boy了。

Spring的IOC是什麼?一個婚姻介紹所

物件包分配,是不是也很不錯啊。

這個過程,Boy需要的Girl物件不再是依靠自己控制去建立,而是由Spring這個婚姻介紹所來完成分配(這個婚姻介紹所比較牛,不只是介紹,直接分配到位)。

現在是不是有些理解了呢。

自己不去控制自己需要的物件,而是由Spring來控制進行分配。這就是控制反轉了。

Spring的IOC是什麼?一個婚姻介紹所

今天IOC婚姻介紹所就聊到這裡了。

想了解更多精彩內容,快來關注軟體開發領路人