zoukankan      html  css  js  c++  java
  • tomcat7的web.xml的xml片段与注解资源的发现处理逻辑

    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集合。

  • 相关阅读:
    Dsl学习笔记-3
    Dsl学习笔记-2
    Dsl学习笔记-1
    多线程学习笔记
    DataGrid研究笔记-3
    DataGrid研究笔记-2
    从基础到分析,聊一聊企业报表平台的建设规划!
    深度解读|数据化管理的四个层次
    干货:实现数据可视化的几个工具选择(工具+编程语言)
    案例分享|某医药集团的BI建设案例
  • 原文地址:https://www.cnblogs.com/luyi/p/4218825.html
Copyright © 2011-2022 走看看