12.AbstractAnnotationConfigDispatcherServletInitializer類介紹

擴(kuò)展AbstractAnnotationConfigDispatcherServletInitializer的任意類都會(huì)自動(dòng)配置DispatcherServlet和Spring應(yīng)用上下文,Spring應(yīng)用上下文會(huì)位于應(yīng)用程序的servlet上下文中。


AbstractAnnotationConfigDispatcherServletInitializer類

首先可以看出,AbstractAnnotationConfigDispatcherServletInitializer是一個(gè)抽象類,且繼承了AbstractDispatcherServletInitializer類。它還有一個(gè)無參的構(gòu)造方法。
其次它里面有方法可以返回WebApplicationContext的對(duì)象。所以說,實(shí)現(xiàn)這個(gè)類,反過來會(huì)查找實(shí)現(xiàn)WebApplicationContext的類并將配置的任務(wù)交給他們來完成。
其中方法createRootApplicationContext和createServletApplicationContext都是用來創(chuàng)建程序的引用上下文,只不過一個(gè)是Root的一個(gè)是servlet的。對(duì)于獲取到的配置類型信息數(shù)組做出判斷,如果不為null,則調(diào)用AnnotationConfigWebApplicationContext類的register方法進(jìn)行注冊(cè)。
其中g(shù)etServletConfigClasses()方法返回帶有@Configuration注解的類將會(huì)用來定義DispatcherServlet應(yīng)用上下文中的bean。getRootConfigClasses()方法返回帶有@Configuration注解的類將會(huì)用來配置ContextClassLoaderListener創(chuàng)建的應(yīng)用的上下文。


AnnotationConfigWebApplicationContext類的register方法

并且調(diào)用Arrays工具類的asList方法將配置類型信息數(shù)組轉(zhuǎn)為L(zhǎng)ist,具體的數(shù)據(jù)結(jié)構(gòu)如下所示:
LinkedHashSet數(shù)據(jù)結(jié)構(gòu)

到此,我們就簡(jiǎn)單的了解了一下AbstractAnnotationConfigDispatcherServletInitializer

最后編輯于
?著作權(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)容