真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java健壯性的方法有哪些

本篇內(nèi)容主要講解“Java健壯性的方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java健壯性的方法有哪些”吧!

創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營(yíng)銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動(dòng)網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營(yíng)銷需求!創(chuàng)新互聯(lián)具備承接各種類型的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作項(xiàng)目的能力。經(jīng)過10多年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評(píng)。

一、進(jìn)行統(tǒng)一的業(yè)務(wù)處理響應(yīng)

根據(jù)螞蟻金服開放平臺(tái)的標(biāo)準(zhǔn)返回,一個(gè) response 至少應(yīng)當(dāng)有4個(gè)返回值。

1、isSuccess  調(diào)用是否成功

2、data           返回的響應(yīng)數(shù)據(jù)

3、errorCode  錯(cuò)誤碼

4、errorMsg    錯(cuò)誤信息

這就要求我們的接口要有標(biāo)準(zhǔn)的統(tǒng)一的 response ,那怎么實(shí)現(xiàn)呢?

1、Spring 切面, JDK 動(dòng)態(tài)代理,Cglib 動(dòng)態(tài)代理等用代理類實(shí)現(xiàn)

2、匿名子類,使用一個(gè)公共的 Executor 來負(fù)責(zé)處理所有的請(qǐng)求。

上面兩種模式都可以實(shí)現(xiàn)標(biāo)準(zhǔn)的 response 的封裝,那么具體要封裝哪些東西呢?其實(shí)最主要的就是統(tǒng)一的 try catch,防止出現(xiàn)任何的 500 錯(cuò)誤給到調(diào)用方。

------ 為什么要在最外層去完成呢?------

因?yàn)?500 錯(cuò)誤對(duì)于調(diào)用方來說是致命而且是毫無(wú)價(jià)值的,無(wú)論調(diào)用方是前端還是其他的業(yè)務(wù)系統(tǒng)

------ 設(shè)定統(tǒng)一的錯(cuò)誤碼 ------

參數(shù)錯(cuò)誤           PARAMETER_ERROR

數(shù)據(jù)庫(kù)錯(cuò)誤       DATABASE_ERROR

外部系統(tǒng)錯(cuò)誤   OUTER_SYSTEM_ERROR

如果有了上面的這些錯(cuò)誤碼以及錯(cuò)誤信息,業(yè)務(wù)方至少可以告知用戶究竟發(fā)生了什么事,也可以設(shè)定一些列的告警以及自動(dòng)化運(yùn)維的方式來處理這些錯(cuò)誤。

二、參數(shù)檢查

在進(jìn)行真正的邏輯處理前,應(yīng)當(dāng)對(duì)入?yún)⑦M(jìn)行一系列的校驗(yàn),以保持后續(xù)業(yè)務(wù)處理邏輯的輕量,這也是 fast fail 思想的指導(dǎo),有錯(cuò)誤盡早結(jié)束處理。

具體是怎樣的呢?我們假設(shè)參數(shù)為 m.

if( null == m ){return ;}

進(jìn)行空判斷,防止后續(xù)滴啊用m發(fā)生 NullPointerException,但這里也不建議拋出NPE,因?yàn)榭吹饺罩疽矔?huì)很迷惑。

if( StringUtils.isEmpty( m ) ){return ;}

字符串是否為空串

if( CollectionUtils.isEmpty.isEmpty( m ) ){return ;}

集合是否為空或者null

try{

    JSON.parseObject( m );

    return true;

}

catch(JSONExceptin e){

    return false;

}

判斷字符串是否為 JSON 格式

三、重試機(jī)制

對(duì)于特定的外部系統(tǒng)錯(cuò)誤,可以嘗試多次重試這種策略,當(dāng)然這也是簡(jiǎn)歷在對(duì)方的服務(wù)是冪等的前提下。這樣做在某些網(wǎng)絡(luò)不穩(wěn)定的情況下可以提高響應(yīng)成功率。

四、冪等機(jī)制

什么叫冪等?意思就是  無(wú)論何時(shí)何處何人,只要是先攻的請(qǐng)求,就應(yīng)當(dāng)有相同的響應(yīng),直到到達(dá)終態(tài)。

這個(gè)原則并不關(guān)注上一次的執(zhí)行結(jié)果,企鵝本次結(jié)果不應(yīng)當(dāng)因?yàn)樯弦淮握?qǐng)求的部分成功或者失敗而導(dǎo)致某些中間狀態(tài)不一致導(dǎo)致請(qǐng)求失敗。

五、Lambda

Optionl.of( target )

            .getOrElse( new ArrayList() )

            .filter( Object::NotNull)

            .forEach( () -> {} )

這種寫法可以確保絕大部分的異常不出現(xiàn),特別是在對(duì)于集合進(jìn)行處理的時(shí)候,因?yàn)榧现兄灰衅渲幸粋€(gè)值是會(huì)導(dǎo)致程序失敗的,整個(gè)程序都會(huì)報(bào)錯(cuò)。這樣寫因?yàn)閷?duì)數(shù)據(jù)做了比較多的檢查和兼容,所以出現(xiàn)錯(cuò)誤的概率會(huì)比較低,但也會(huì)有一個(gè)弊端,就是當(dāng)這樣的程序都出現(xiàn)異常的時(shí)候,開發(fā)者一般不知從何查起,要定位出是哪行數(shù)據(jù)就已經(jīng)很費(fèi)勁了。

到此,相信大家對(duì)“Java健壯性的方法有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


新聞標(biāo)題:Java健壯性的方法有哪些
文章位置:http://weahome.cn/article/gsspej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部