Spring核心思想 控制反轉(zhuǎn)Ioc//Inversion of Control和依賴注射DI//Dependency Injection
什么叫控制反轉(zhuǎn)呢?
套用好萊塢的一句名言就是:你呆著別動(dòng),到時(shí)我會(huì)找你。
什么意思呢?就好比一個(gè)皇帝和太監(jiān)
有一天皇帝想幸某個(gè)美女,于是跟太監(jiān)說,今夜我要寵幸美女
皇帝往往不會(huì)告訴太監(jiān),今晚幾點(diǎn)會(huì)回宮,會(huì)回哪張龍床,他只會(huì)告訴太監(jiān)他要哪位美女。其它一切都交由太監(jiān)去安排,到了晚上皇帝回宮時(shí),自然會(huì)有美女出現(xiàn)在皇帝的龍床上。這就是控制反轉(zhuǎn),而把美女送到皇帝的寢宮里面去就是注射。太監(jiān)就是是框架里面的注射控制器類BeanFactory,負(fù)責(zé)找到美女并送到龍床上去
整個(gè)后宮可以看成是Spring框架,美女就是Spring控制下的JavaBean。
而傳統(tǒng)的模式就是一個(gè)饑渴男去找小姐出臺(tái),找領(lǐng)班,幫助給介紹一個(gè)云云,于是領(lǐng)班就開始給他張羅。介紹一個(gè)合適的給他,完事后,再把小姐還給領(lǐng)班,下次再來。這個(gè)過程中,領(lǐng)班就是查詢上下文Context,領(lǐng)班的一個(gè)職能就是給客戶找到他們所要的小姐。這就是lookup()方法,領(lǐng)班手中的小姐名錄就是JNDI//Java Naming and Directory Interface。小姐就是EJB,饑渴男是客戶端,青樓是EJB容器。
看到區(qū)別了么?饑渴男去找小姐出臺(tái)很麻煩,不僅得找,用完后還得把小姐給還回去。而皇帝爽翻了,什么都不用管,交給太監(jiān)去處理,控制權(quán)轉(zhuǎn)移到太監(jiān)手中去了,而不是皇帝,必要時(shí)候由太監(jiān)給注射進(jìn)去就可以了。看到Spring的美妙了吧,Spring還提供了與多個(gè)主流框架的支持,可以和其它開源框架集成。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。