【Spring架構】 ? WebApplicationInitializer源碼分析及應用

來源:互聯網
上載者:User

標籤:color   說明   操作   cat   ring   大於   link   參數   檔案   

1、背景

  在約定大於配置的大環境下,xml設定檔越來越多的被零配置所取代。還有大部分將原xml中的配置轉為在java類中定義。

  而WebApplicationInitializer就可以看做是web.xml的替代者,在啟動Web項目時會載入該實作類別,實作類別中可定義對 servlet、filter、listener的操作。

2、源碼分析

  先來看下WebApplicationInitializer介面定義,可以看到只有一個介面,參數ServletContext解釋說要用來初始化的;

  再看類上註解,提示可以參考SpringServletContainerInitializer。

  

  轉看SpringServletContainerInitializer,先看類定義;

  首先該類實現了ServletContainerInitialize介面,並且在注釋中明確說明在容器啟動時載入該實作類別。

       

  

  再來看重寫的方法 onStartup(Set<Class<?>> webAppInitializerClasses, ServletContext servletContext)

  webAppInitializerClasses,解釋為所有WebApplicationInitializer介面的實作類別,也就是說在容器啟動時,webAppInitializerClasses的實作類別類型會作為參數傳入;

  下面的代碼就很容易讀懂了,如果不是介面啥的,將實作類別執行個體化放到linkedList,然後迴圈調用實作類別中重寫的方法,以此達到代替xml的作用。

  

 

3、應用

  分析完源碼,說下實際項目中的應用。

  沒啥說的,寫了 servlet、filter 、listener的操作。

   

【Spring架構】 ? WebApplicationInitializer源碼分析及應用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.