一、spring ioc的好處:https://www.zhihu.com/question/23277575/answer/169698662
1、依賴倒置原則——把原本的高層建筑依賴底層建筑“倒置”過來,變成底層建筑依賴高層建筑。高層建筑決定需要什么,底層去實現(xiàn)這樣的需求,但是高層并不用管底層是怎么實現(xiàn)的。
一開始是先有輪胎,然后有底盤,然后有車身,然后有汽車,輪胎一變,所有都要變。依賴倒置之后,先有汽車,汽車需要底盤,底盤需要輪胎,讓底層來適應(yīng)上層,這樣輪胎變,底盤、車身等不用變。
2、控制反轉(zhuǎn)是依賴倒置原則的代碼設(shè)計思路。具體采用的方法就是依賴注入。
車、車身、底盤、輪胎
輪胎的構(gòu)造方法變動,上層都要變
依賴注入:依賴的對象不用自己生成,從外部注入
輪胎的構(gòu)造方法變動,上層不用變
好處:可維護性、可擴展性更好。
有利于不同組的協(xié)同合作和單元測試。
3、IOC容器
采用依賴注入的方式,初始化時要new大量的對象,并且設(shè)置到依賴的組件中。IOC容器用來解決這個問題,通過配置來聲明需要new哪些對象,以及管理依賴關(guān)系。
隱藏了很多創(chuàng)建的細節(jié)