所謂依賴注入,就是由IOC容器在運行期間,動態的將某種依賴關系注入到對象之中!!!這句話求解釋
我覺得是有兩個知識點的不理解,造成了對這句話不理解,第一:容器是什么?可以形象一點的解釋一下嗎?第二:某種依賴關系注入到對象中,這里的依賴關系指的是什么?注入又是否是指邏輯表示出來這種關系?
我覺得是有兩個知識點的不理解,造成了對這句話不理解,第一:容器是什么?可以形象一點的解釋一下嗎?第二:某種依賴關系注入到對象中,這里的依賴關系指的是什么?注入又是否是指邏輯表示出來這種關系?
2016-04-24
舉報
2016-04-25
你可以這么想象,容器就是游泳池,對象就是游泳的人,?當你new 出對象時就是允許人進入游泳池。所以你就是游泳池管理員,需要控制游泳的人數,可是如果你做得不稱職,隨便讓人進去游泳池(new 出太多對象,或者很多其它情況。。),這樣游泳池的人就可能會太多了,沒地方游泳了(內存溢出)。那怎么辦,為了更好管理游泳池,你可以把控制權交給被人,讓別人幫你管理,這就是IOC-控制反轉。由IOC管理的“游泳池”就是IOC容器。
然后依賴關系你可以想象成為游泳學員和教練的關系,學員需要教練的協助才可以活動。從代碼上來說就是一個對象(學員)需要引用其它對象(教練)才能執行功能,這就是依賴關系。
注入,你可以想象為幫學員找教練,有時候一個教練可以教多個學員(教練是單例),有時候一個教練只可以教一個學員,如果你處理不當的話,讓太多教練進入游泳池,這樣可能會導致游泳池太多人。所以Spring,JavaEE等框架會幫你處理這個事,你只要告訴框架有這樣的依賴關系或需要就可以了。在代碼上,給你引用的對象加上@Autowired (Spring), @EJB(JavaEE),這樣框架就會在運行中幫你找到相應的對象而不需要你去管理。