91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

东莞市| 南宫市| 界首市| 赤壁市| 哈尔滨市| 绥中县| 保山市| 益阳市| 密云县| 普定县| 尼勒克县| 孟津县| 阿坝| 社会| 合肥市| 南阳市| 蒙自县| 拜城县| 新营市| 文安县| 鄂伦春自治旗| 阿拉善盟| 武义县| 拜泉县| 屏东市| 体育| 安化县| 唐河县| 长子县| 罗平县| 三门县| 凤冈县| 福建省| 额敏县| 济南市| 邢台市| 龙岩市| 博乐市| 宣化县| 霞浦县| 雷州市|