tomcat7的web.xml的xml片段與註解資源的發現處理邏輯

來源:互聯網
上載者:User

標籤:

1、metadata-complete 屬性

Servlet 3.0 的部署描述檔案 web.xml 的頂層標籤 <web-app> 有一個 metadata-complete 屬性,該屬性指定當前的部署描述檔案是否是完全的。 如果為true,表示部署描述檔案,涵蓋了所有的內容(即不支援可插的註解支援。),如果為false,除瞭解析部署描述檔案外,還將對相關jar包中含“聲明處理的註解”進行解析。

 

2、web-fragments是通過jarscanner去掃描,然後對應callback去做檔案識別和解析。

     這個過程中即使不存在“meta-inf/web-fragment.xml”,那麼也會產生空webXML的對象。 but why? 這樣相當于于標識了所有jar包,為後面掃描class檔案(見第三點)做準備,相當雩都有一個base path。 而且,metadata-complete=false時,雖然xml片段可能不存在,但還有可能存在響應的註解的執行個體。

 

3、ServletContainerInitailizer與@HandlerTypes註解。

  通過service load機制,發現對應資源設定檔中希望add的ServletContainerInitailizer的實現,

  然後看該sci的有沒聲明HandlerTypes的註解(希望被掃描註解),然後add sci到context中,

  Context.startInternal時,會執行執行一次sci.onstartup(),參數是所有關聯的被篩選的class集合。

tomcat7的web.xml的xml片段與註解資源的發現處理邏輯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.