jetty xml解析
1 configure
configure為xml的根結(jié)點,class指定所配置的對象的類,這個configure會創(chuàng)建一個該類的對象,然后根據(jù)該xml對其進(jìn)行配置。id用來對該對象進(jìn)行標(biāo)識,在整個jetty中具有唯一性,相同id的xml configure文件配置的是同一個對象。
2 set
<Set name=xxx type=xxx class=xxx>value</Set>
無論value處是什么元素,其返回值都作為setXxx()函數(shù)的參數(shù),即setXxx(value)。
name用來確定該setter的名字,setXxx。
type用來指示value的類型,一般情況下可以省略。
如果有class,那么這就是該類的一個static的調(diào)用。
3 get
<Get name=xxx class=xxx>operation</Get>
name用來確定該getter的名字,getXxx。
如果有class,那么也是調(diào)用該類的一個static的getter。
Get會返回一個對象A,然后再調(diào)用該對象A的operation,可以是set、call、get、put等。
4 調(diào)用set、get、put、call的對象
是離它們最近的標(biāo)簽所決定的對象在調(diào)用它們,比如如果set在<Get></Get>這個范圍內(nèi)的話,那么這個set就是由getXxx方法返回的對象調(diào)用的。類似,如果set是在<Configure></Configure>這個范圍的話,那么這個setXxx方法就是由根對象調(diào)用的。
5 put
調(diào)用put的對象必須要實現(xiàn)Map接口,也就是說,調(diào)用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/>
??? 各種其它的標(biāo)簽
</Call>
在當(dāng)前scope的對象的繼承上調(diào)用xxx(value)函數(shù),參數(shù)是value,由Arg指定,然后返回一個對象。然后調(diào)用這個對象的由“各種其它的標(biāo)簽”指定的函數(shù)。
7 <Arg>
指定函數(shù)的參數(shù)。
8 <New>
<New class=xxx>
??? <Arg>value</Arg>
??? 各種其它標(biāo)簽
</New>
創(chuàng)建類xxx的新的對象,構(gòu)造函數(shù)的參數(shù)為value,創(chuàng)建新的對象后,調(diào)用該對象的“各種其它標(biāo)簽”指定的方法。
9 <Ref>
<Ref refid=xxx></Ref>,返回id xxx指定的對象的引用,用來作為各種value值。
<Ref refid=xxx>
??? 各種其它標(biāo)簽
</Ref>
這種情況下,先返回id xxx指定的對象的引用,然后再調(diào)用該對象的“各種其它標(biāo)簽”指定的方法。
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”構(gòu)成value,如果jetty.home返回“/home/chao/jetty-home”的話,整個value就應(yīng)該是“/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"));
?
轉(zhuǎn)載于:https://www.cnblogs.com/hustdc/p/8366606.html
總結(jié)
以上是生活随笔為你收集整理的jetty xml解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: modbus报文解析实例_云原生、全栈可
- 下一篇: Python学习第一天-第2节