這篇文章將為大家詳細(xì)講解有關(guān)SpringBoot如何優(yōu)雅的進(jìn)行參數(shù)校驗,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)是專業(yè)的新安網(wǎng)站建設(shè)公司,新安接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行新安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
參數(shù)的合法性直接影響到程序的安全和性能,因此在進(jìn)行相關(guān)操作前必須檢測對象是否為null,是否為blank,是否被初始化等等。
我們先來看看SpringBoot 是如何來檢驗參數(shù)的。
驗證總是擺在第一位。
再來分析下Assert 類。 Assert 其實是一個非常簡單的工具類。
Assert 類作為一個工具類,不應(yīng)該被實例化, 因此該類使用 abstract 進(jìn)行修飾。 沒錯這就是經(jīng)常遇到的面試題目, abstract 類不能被實例化。
除此之外 將構(gòu)造方法使用 private 進(jìn)行修飾也可以防止類被實例化,這也是常用的編程技巧之一。
Assert 類在SpringBoot 項目中被廣泛使用。
為啥使用Assert 類? 因為使用Assert 能使得代碼更加簡潔明。三行代碼變成一行代碼,并且Controller 類不需要依賴具體的Exception 類,少依賴一種Exception, import語句減少一行。
@RequestMapping("edit") @RequiresPermissions(value = "fsdd-2") public String edit(@RequestParam @NonNull Long id, Model model) { Classify classify = classifyService.findById(id); /* if(classify == null){ throw new EntityNotFoundException("被修改的分類不能為空" + id); }*/ Assert.notNullEntity(classify, "被修改的分類不能為空" + id); model.addAttribute("classify", classify); return "manage/ClassifyController/edit"; }
修改某條記錄時 , id 參數(shù)是必須的,并且id不能為空, 并且根據(jù)id查詢出來的實體對象也不能為空。 當(dāng)然還必須處于登陸狀態(tài),并且擁有相關(guān)的角色權(quán)限。
到此我們只是驗證了參數(shù)是否合法并且拋出了異常,但是并沒有告訴用戶后臺發(fā)生了什么事情。
使用 @ControllerAdvice 和 @ExceptionHandler 可以捕獲不同類型的錯誤,并且根據(jù)錯誤的類型給前臺用戶相應(yīng)的反饋。
關(guān)于SpringBoot如何優(yōu)雅的進(jìn)行參數(shù)校驗就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
當(dāng)前題目:SpringBoot如何優(yōu)雅的進(jìn)行參數(shù)校驗
文章起源:http://chinadenli.net/article46/gohjeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)、虛擬主機(jī)、商城網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)