背景
在實(shí)踐開(kāi)發(fā)中,數(shù)據(jù)的處理有五種:獲取、傳輸、存儲(chǔ)、剖析、轉(zhuǎn)化。每種各對(duì)應(yīng)一些常用的技能。
序列化和反序列化
序列化是將方針的信息轉(zhuǎn)化為可傳輸或可存儲(chǔ)方式的過(guò)程。反序列化便是反過(guò)來(lái)讓這些可傳輸?shù)?、可存?chǔ)的信息變回方針。
傳輸?shù)男蛄谢税踩缘目紤],因?yàn)樯婕暗胶偷谌酵ㄓ?,所以還有重要的一點(diǎn)是可讀性和不變性。而存儲(chǔ)的鏈路短,可控,所以更考究效率。
傳輸最常用的序列化手段是JSON這樣人眼可讀的。而存儲(chǔ)會(huì)運(yùn)用protostuff這種將key值映射成編碼來(lái)傳輸?shù)?。因?yàn)?,2,3比one、two、four更省空間更高效。但是傳輸中都用編碼,解析時(shí)就很難判斷它的意義。兩邊還要進(jìn)行額定的約好。原本3代表four,中心加了一個(gè)three,3代表three的話,對(duì)方?jīng)]有及時(shí)被通知,那么解析傳輸過(guò)來(lái)的消息便是錯(cuò)的。
反射
Java反射是在運(yùn)行時(shí),關(guān)于任何一個(gè)類,都能夠知道這個(gè)類有哪些辦法和特點(diǎn)。關(guān)于任何一個(gè)方針,都能對(duì)它的辦法和特點(diǎn)進(jìn)行調(diào)用。
常用數(shù)據(jù)轉(zhuǎn)化東西,比方Spring的RequestParam、RequestBody、ResponseBody內(nèi)部就用了反射機(jī)制。還有Jackson等東西類。甚至在業(yè)務(wù)代碼中直接運(yùn)用反射也是很常見(jiàn)的。比方設(shè)計(jì)一個(gè)AI幫手問(wèn)答機(jī)。想完成:
小A:我要查找美人”冰冰”AI幫手:OK,查找”冰冰”小A:想知道她的”年紀(jì)”AI幫手:21歲
上面這個(gè)JAVA完成是這樣的:
Fieldfield=美人.class.getDeclaredField(年紀(jì));field.setAccessible(true);returnfield.get(冰冰).toString();
動(dòng)態(tài)署理
署理模式是為了供給增強(qiáng)的或不同的操作,而插入來(lái)代替實(shí)踐方針的方針。這些操作涉及到與實(shí)踐方針的通訊,所以稱為署理。
Spring首要的兩大思想IoC和AOP。關(guān)于IoC,利用的是反射機(jī)制。而AOP運(yùn)用了動(dòng)態(tài)署理,當(dāng)然底層也是反射。
JDK動(dòng)態(tài)署理只能給有接口的類署理。實(shí)質(zhì)是經(jīng)過(guò)反射獲取要履行的辦法,并在履行前或許后加入一些署理處理操作。cglib實(shí)質(zhì)上用承繼的辦法完成的,是經(jīng)過(guò)動(dòng)態(tài)生成一個(gè)子類去掩蓋所要署理的類。用final修飾的不能被掩蓋的就不署理了。spring動(dòng)態(tài)署理是優(yōu)先運(yùn)用JDK動(dòng)態(tài)署理,假如方針沒(méi)有完成任何接口,則創(chuàng)建一個(gè)cglib署理。假如幾個(gè)類完成了都完成了一個(gè)通用接口,比方Runnable,而且加了Component請(qǐng)spring來(lái)?yè)?dān)任其生命周期。這時(shí)候會(huì)拋出一個(gè)Proxy署理反常。說(shuō)希望加載一個(gè)Bean,實(shí)踐上完成卻不只一個(gè)。這時(shí)候能夠在這個(gè)類上加下面標(biāo)簽強(qiáng)制運(yùn)用cglib署理來(lái)處理。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹(shù)莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)