中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot如何優雅的進行參數校驗

發布時間:2021-09-29 17:47:19 來源:億速云 閱讀:184 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關SpringBoot如何優雅的進行參數校驗,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

參數的合法性直接影響到程序的安全和性能,因此在進行相關操作前必須檢測對象是否為null,是否為blank,是否被初始化等等。

我們先來看看SpringBoot 是如何來檢驗參數的。

SpringBoot如何優雅的進行參數校驗

SpringBoot如何優雅的進行參數校驗

驗證總是擺在第一位。

再來分析下Assert 類。 Assert  其實是一個非常簡單的工具類。 

SpringBoot如何優雅的進行參數校驗

Assert 類作為一個工具類,不應該被實例化, 因此該類使用 abstract 進行修飾。 沒錯這就是經常遇到的面試題目, abstract 類不能被實例化。

除此之外 將構造方法使用 private 進行修飾也可以防止類被實例化,這也是常用的編程技巧之一。 

Assert 類在SpringBoot 項目中被廣泛使用。 

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 參數是必須的,并且id不能為空, 并且根據id查詢出來的實體對象也不能為空。 當然還必須處于登陸狀態,并且擁有相關的角色權限。

到此我們只是驗證了參數是否合法并且拋出了異常,但是并沒有告訴用戶后臺發生了什么事情。

使用 @ControllerAdvice 和 @ExceptionHandler 可以捕獲不同類型的錯誤,并且根據錯誤的類型給前臺用戶相應的反饋。

SpringBoot如何優雅的進行參數校驗

關于SpringBoot如何優雅的進行參數校驗就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新乡市| 介休市| 凯里市| 永年县| 饶阳县| 麻城市| 中牟县| 龙岩市| 大兴区| 宁陕县| 平远县| 三台县| 香河县| 龙口市| 清水县| 凤台县| 福海县| 洪泽县| 青岛市| 藁城市| 大洼县| 紫金县| 左贡县| 邯郸县| 广西| 隆尧县| 株洲市| 昭觉县| 元江| 南郑县| 隆德县| 科尔| 大方县| 雷波县| 云浮市| 凤山县| 鄱阳县| 顺平县| 久治县| 五指山市| 芷江|