安裝依賴項
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>
1、新建實體類
@Data
public class UserEntity {private String name;private Integer age;
}
2、新建驗證類
import com.example.springboot3mqtt.entity.UserEntity;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;public class UserValidator implements Validator {//判斷當前驗證器是否支持該class類型的驗證@Overridepublic boolean supports(Class<?> clazz){return clazz.equals(UserEntity.class);//對應的實體類}//驗證邏輯@Overridepublic void validate(Object target, Errors errors){if (target==null){errors.rejectValue("","300","用戶不得為空");}UserEntity user=(UserEntity)target;if(user.getName()==null || user.getName().isEmpty()){errors.rejectValue("name","300","用戶名不能為空");}}
}
3、在控制器中
3.1 首先寫入方法
@InitBinder注解的作用是在控制器方法執行之前,先執行有 @InitBinder注解的方法,使用WebDataBinder 把新建的驗證規則綁定
@InitBinderpublic void initBinder(WebDataBinder binder){binder.setValidator(new UserValidator());//綁定剛才的自定義驗證器}
3.2 在控制器接口參數中
@PostMapping("/updateUser")public String updateUser(@Valid @RequestBody UserEntity user){//Validatorreturn "OK";}