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"));
?