jetty xml解析

1 configurejavascript

configure爲xml的根結點,class指定所配置的對象的類,這個configure會建立一個該類的對象,而後根據該xml對其進行配置。id用來對該對象進行標識,在整個jetty中具備惟一性,相同id的xml configure文件配置的是同一個對象。java

2 setweb

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

不管value處是什麼元素,其返回值都做爲setXxx()函數的參數,即setXxx(value)。webapp

name用來肯定該setter的名字,setXxx。函數

type用來指示value的類型,通常狀況下能夠省略。ui

若是有class,那麼這就是該類的一個static的調用。spa

3 getcode

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

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"));
相關文章
相關標籤/搜索