轉(zhuǎn)帖|行業(yè)資訊|編輯:郝浩|2016-02-25 10:49:52.000|閱讀 844 次
概述:本篇講解了Ioc容器的擴(kuò)展點(diǎn),并對(duì)Ioc容器的模型進(jìn)行了類比,方便對(duì)其進(jìn)行了解。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
現(xiàn)在還有一個(gè)問(wèn)題就是如何讓這些Bean對(duì)象有一定的擴(kuò)展性,就是可以加入用戶的一些操作。那么有哪些擴(kuò)展點(diǎn)呢?Spring又是如何調(diào)用到這些擴(kuò)展點(diǎn)的?
對(duì)Spring的Ioc容器來(lái)說(shuō),主要有這么幾個(gè)。BeanFactoryPostProcessor,BeanPostProcessor。他們分別是在構(gòu)建BeanFactory和構(gòu)建Bean對(duì)象時(shí)調(diào)用。還有就是InitializingBean和DisposableBean 他們分別是在Bean實(shí)例創(chuàng)建和銷毀時(shí)被調(diào)用。用戶可以實(shí)現(xiàn)這些接口中定義的方法,Spring就會(huì)在適當(dāng)?shù)臅r(shí)候調(diào)用他們。還有一個(gè)是FactoryBean他是個(gè)特殊的Bean,這個(gè)Bean可以被用戶更多的控制。
這些擴(kuò)展點(diǎn)通常也是我們使用Spring來(lái)完成我們特定任務(wù)的地方,如何精通Spring就看你有沒有掌握好Spring有哪些擴(kuò)展點(diǎn),并且如何使用他們,要知道如何使用他們就必須了解他們內(nèi)在的機(jī)理。可以用下面一個(gè)比喻來(lái)解釋。
我們把Ioc容器比作一個(gè)箱子,這個(gè)箱子里有若干個(gè)球的模子,可以用這些模子來(lái)造很多種不同的球,還有一個(gè)造這些球模的機(jī)器,這個(gè)機(jī)器可以產(chǎn)生球模。那么他們的對(duì)應(yīng)關(guān)系就是BeanFactory就是 那個(gè)造球模的機(jī)器,球模就是Bean,而球模造出來(lái)的球就是Bean的實(shí)例。那前面所說(shuō)的幾個(gè)擴(kuò)展點(diǎn)又在什么地方呢?BeanFactoryPostProcessor對(duì)應(yīng)到當(dāng)造球模被造出來(lái)時(shí),你將有機(jī)會(huì)可以對(duì)其做出設(shè) 當(dāng)?shù)男拚簿褪撬梢詭湍阈薷那蚰!6鳬nitializingBean和DisposableBean是在球模造球的開始和結(jié)束階段,你可以完成一些預(yù)備和掃尾工作。BeanPostProcessor就可以讓你對(duì)球模造出來(lái)的球做出 適當(dāng)?shù)男拚W詈筮€有一個(gè)FactoryBean,它可是一個(gè)神奇的球模。這個(gè)球模不是預(yù)先就定型了,而是由你來(lái)給他確定它的形狀,既然你可以確定這個(gè)球模型的形狀,當(dāng)然他造出來(lái)的球肯定就是你想要的球了,這樣在這個(gè)箱子里就可以發(fā)現(xiàn)所有你想要的球了。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn