Paste_Image.png
如圖所示捡硅,我們?cè)谑褂胑lasticsearch時(shí)秉继,首先先從Settings開(kāi)始祈噪,那我們不禁想問(wèn),Settings到底為我們做了哪些事情尚辑?
那我們就得先看看這個(gè)Settings類(lèi)時(shí)何方神圣了辑鲤。這個(gè)Settings是一個(gè)final類(lèi),如下圖所示:
Paste_Image.png
從圖中我們可以看到Settings實(shí)現(xiàn)了ToXcontent接口:
Paste_Image.png
上圖也就是ToXContent的廬山真面目了杠茬。
我們從上圖就能看出來(lái)月褥,這個(gè)類(lèi)一共有五個(gè)成員,一個(gè)方法瓢喉,一個(gè)字段宁赤,兩個(gè)靜態(tài)內(nèi)部類(lèi),和一個(gè)內(nèi)部接口栓票。這個(gè)類(lèi)如果以后碰到相應(yīng)的內(nèi)容我們?cè)龠M(jìn)行分析决左,大家有個(gè)印象即可。好走贪,那我們現(xiàn)在繼續(xù)看Settings類(lèi)佛猛。
我們現(xiàn)在看看Settings的settingBuilder()方法:
Paste_Image.png
如果我們看到,這使用了一個(gè)靜態(tài)內(nèi)部類(lèi)來(lái)進(jìn)行實(shí)例化厉斟。我們看看Builder類(lèi)給我做了什么事情:
Paste_Image.png
Builder類(lèi)在初始化的時(shí)候?qū)嵗艘粋€(gè)LinkedHashMap挚躯,這個(gè)map到底干什么用,其實(shí)是放我們put進(jìn)去的數(shù)據(jù)擦秽,請(qǐng)各位看第一圖的put方法码荔,其實(shí)就是把數(shù)據(jù)放入到這個(gè)map中,看下圖:
Paste_Image.png
我們調(diào)用Builder類(lèi)的put方法把數(shù)據(jù)放入到map中后感挥,我們調(diào)用了Builder的build()方法缩搅,我們看看這個(gè)方法干了什么事情:
Paste_Image.png
代碼很簡(jiǎn)單,就是將map給了Settings的構(gòu)造函數(shù)触幼,我們看看這個(gè)構(gòu)造函數(shù)是怎么寫(xiě)的:
Paste_Image.png