applicationContext與beanFactory的區(qū)別

描述


BeanFactory:

是Spring里面最低層的接口,提供了最簡(jiǎn)單的容器的功能,只提供了實(shí)例化對(duì)象和拿對(duì)象的功能;


ApplicationContext:

應(yīng)用上下文,繼承BeanFactory接口,它是Spring的一各更高級(jí)的容器,提供了更多的有用的功能;

1) 國(guó)際化(MessageSource)

2) 訪問(wèn)資源,如URL和文件(ResourceLoader)

3) 載入多個(gè)(有繼承關(guān)系)上下文 ,使得每一個(gè)上下文都專注于一個(gè)特定的層次,比如應(yīng)用的web層 ?

4) 消息發(fā)送、響應(yīng)機(jī)制(ApplicationEventPublisher)

5) AOP(攔截器)




兩者裝載bean的區(qū)別


BeanFactory:

BeanFactory在啟動(dòng)的時(shí)候不會(huì)去實(shí)例化Bean,中有從容器中拿Bean的時(shí)候才會(huì)去實(shí)例化;


ApplicationContext:

ApplicationContext在啟動(dòng)的時(shí)候就把所有的Bean全部實(shí)例化了。它還可以為Bean配置lazy-init=true來(lái)讓Bean延遲實(shí)例化;?




我們?cè)撚肂eanFactory還是ApplicationContent


延遲實(shí)例化的優(yōu)點(diǎn):(BeanFactory

應(yīng)用啟動(dòng)的時(shí)候占用資源很少;對(duì)資源要求較高的應(yīng)用,比較有優(yōu)勢(shì);?


不延遲實(shí)例化的優(yōu)點(diǎn): (ApplicationContext

1. 所有的Bean在啟動(dòng)的時(shí)候都加載,系統(tǒng)運(yùn)行的速度快;?

2. 在啟動(dòng)的時(shí)候所有的Bean都加載了,我們就能在系統(tǒng)啟動(dòng)的時(shí)候,盡早的發(fā)現(xiàn)系統(tǒng)中的配置問(wèn)題?

3. 建議web應(yīng)用,在啟動(dòng)的時(shí)候就把所有的Bean都加載了。(把費(fèi)時(shí)的操作放到系統(tǒng)啟動(dòng)中完成)?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容