Spring的IOC是什麼?一個婚姻介紹所
Spring是java開發中經常會用到的一個框架。
面試中自然也就會經常問到Spring的相關問題。
Spring的AOP和IOC便在這些常被問到的問題之列。
Spring的AOP相關的內容之前有寫過《
spring的aop揭秘,動態代理之JDK動態代理
》和《
spring的aop揭秘,動態代理之Cglib動態代理
》這兩篇文章,有興趣的朋友可以翻閱一下。
spring——春天
今天就說說Spring的另一個特點IOC。
Spring的IOC,是控制反轉(Inversion of Control)。可是什麼是控制翻轉呢。
我剛開始學習的時候,覺得這個點是很難理解。不知道大家是否也這麼認為。
那先說說如果不用Spring的話,我們自己怎麼控制Bean物件呢。
是不是下面這樣呢。
這段程式碼中我們的Boy是依靠自己的能力去找到自己的Girl物件的(自己去new了一個物件,有沒有想到一個段子,軟體工程師不缺物件,需要就new一個)。
自己需要的物件完全依靠自己控制去建立。
而Spring的IOC(控制反轉)是怎麼做的呢。
還用這個Boy來說吧。
我們的Boy不再需要自己new一個Girl物件了,只需要提出條件(什麼型別或者是Bean物件的名字等)。Spring就會自動從自己管理的Bean物件中找到符合條件的物件分配給我們Boy了。
物件包分配,是不是也很不錯啊。
這個過程,Boy需要的Girl物件不再是依靠自己控制去建立,而是由Spring這個婚姻介紹所來完成分配(這個婚姻介紹所比較牛,不只是介紹,直接分配到位)。
現在是不是有些理解了呢。
自己不去控制自己需要的物件,而是由Spring來控制進行分配。這就是控制反轉了。
今天IOC婚姻介紹所就聊到這裡了。
想了解更多精彩內容,快來關注軟體開發領路人