上一篇將驗證的功能做的差不多,但還是需要在進行優化,像是新增和修改的驗證規則可能是不同的,所以必須進行驗證分組,每一種驗證註解都可以加上groups

在common專案中新增package:valid,並建立兩個空介面,這個空介面用來表示於什麼時候該做什麼驗證

為何必須這樣寫,因為在原始碼中,groups是這樣定義的,所以建立出空介面來做分組標示

然後要修改Controller中的@valid,改成@validated,這是由spring框架提供的驗證註解,可指定多個組別

    @PostMapping("/save")
    public R save(@Validated({AddGroup.class}) @RequestBody BrandEntity brand) {
        brandService.save(brand);
        return R.ok();
    }

測試時加入brandId試試看

剛剛的驗證訊息就會出現了,這樣也可讓修改時做另外一種驗證

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@Validated({UpdateGroup.class}) @RequestBody BrandEntity brand) {
        brandService.updateById(brand);
        return R.ok();
    }

使用POSTMAN測試

將其他的欄位也加上群組驗證

預設中沒有指定分組的註解(例:@NotBlank)在分組驗證情況(例:@validated({AddGroup.class}))下不會有效果,反之則會有效果,這樣的方式就可在複雜的情境中分開驗證。