zoukankan      html  css  js  c++  java
  • jetty xml解析

    1 configure

    configure为xml的根结点,class指定所配置的对象的类,这个configure会创建一个该类的对象,然后根据该xml对其进行配置。id用来对该对象进行标识,在整个jetty中具有唯一性,相同id的xml configure文件配置的是同一个对象。

    2 set

    <Set name=xxx type=xxx class=xxx>value</Set>

    无论value处是什么元素,其返回值都作为setXxx()函数的参数,即setXxx(value)。

    name用来确定该setter的名字,setXxx。

    type用来指示value的类型,一般情况下可以省略。

    如果有class,那么这就是该类的一个static的调用。

    3 get

    <Get name=xxx class=xxx>operation</Get>

    name用来确定该getter的名字,getXxx。

    如果有class,那么也是调用该类的一个static的getter。

    Get会返回一个对象A,然后再调用该对象A的operation,可以是set、call、get、put等。

    4 调用set、get、put、call的对象

    是离它们最近的标签所决定的对象在调用它们,比如如果set在<Get></Get>这个范围内的话,那么这个set就是由getXxx方法返回的对象调用的。类似,如果set是在<Configure></Configure>这个范围的话,那么这个setXxx方法就是由根对象调用的。

    5 put

    调用put的对象必须要实现Map接口,也就是说,调用put的对象必须是一个key-value pair的map对象。

    <Put name=xxx type=xxx>value</Put>

    其中name/value就是key-value pair,而type用来指定value的类型。

    6 call

    <Call name=xxx>

        <Arg>value<Arg/>

        各种其它的标签

    </Call>

    在当前scope的对象的继承上调用xxx(value)函数,参数是value,由Arg指定,然后返回一个对象。然后调用这个对象的由“各种其它的标签”指定的函数。

    7 <Arg>

    指定函数的参数。

    8 <New>

    <New class=xxx>

        <Arg>value</Arg>

        各种其它标签

    </New>

    创建类xxx的新的对象,构造函数的参数为value,创建新的对象后,调用该对象的“各种其它标签”指定的方法。

    9 <Ref>

    <Ref refid=xxx></Ref>,返回id xxx指定的对象的引用,用来作为各种value值。

    <Ref refid=xxx>

        各种其它标签

    </Ref>

    这种情况下,先返回id xxx指定的对象的引用,然后再调用该对象的“各种其它标签”指定的方法。

    10 SystemProperty和Property

    类似于get,获取property。注意,它们两个都是返回一个值。

    例如<Property name="jetty.home" default="."/>,去获取jetty.home这个属性的值,并且返回,如果没有,就返回“.”。

    这个是可以用于拼接路径的,比如

    <set name="war"><Property name="jetty.home" default="."/>/webapps/SpringMVCTest.war</set>

    其中“<Property name="jetty.home" default="."/>/webapps/SpringMVCTest.war”构成value,如果jetty.home返回“/home/chao/jetty-home”的话,整个value就应该是“/home/chao/jetty-home/webapps/SpringMVCTest.war”。

    11 Array和Item

    <Array type="java.lang.String">
       <Item>value0</Item>
       <Item><New class="java.lang.String"><Arg>value1</Arg></New></Item>
    </Array>
    等价于
    String[] a = new String[] { "value0", new String("value1") };

    12 Map、Entry和Item

    <Map>
      <Entry>
        <Item>keyName</Item>
        <Item><New class="java.lang.String"><Arg>value1</Arg></New></Item>
      </Entry>
    </Map>
    等价于
    Map m = new HashMap();
    m.put("keyName", new String("value1"));



  • 相关阅读:
    Altium Designer 快捷键,长期更新
    代码: 0x80131500:应用商店崩溃怎么修复
    (转)stm32cubeMx配置使用encoder编码器
    STM32 PWM注意事项
    转载 STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发
    STM32Cube填坑,ST link 下载一次以后无法下载
    SuperSocket 学习笔记-客户端
    python-kaggle之旅
    Leetcode刷题记(9)——移除元素
    Leetcode刷题记(8)——删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/hustdc/p/8366606.html
Copyright © 2011-2022 走看看