上一篇將驗證的功能做的差不多,但還是需要在進行優化,像是新增和修改的驗證規則可能是不同的,所以必須進行驗證分組,每一種驗證註解都可以加上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}))下不會有效果,反之則會有效果,這樣的方式就可在複雜的情境中分開驗證。