在Spring Boot中,实现参数校验有以下不同方式:
1. 注解方式:使用javax.validation.constraints包下的注解,如@NotNull、@Size、@Min、@Max等,在Controller层的方法参数上加上相应的注解即可。需要在启动类上添加@EnableWebMvc注解和一个bean,即MethodValidationPostProcessor。
2. Validator接口方式:自定义一个实现了Validator接口的类,实现validate方法,在Controller层的方法上使用@Validated注解,并在方法参数上添加@Valid注解即可。需要在启动类上添加一个bean,即LocalValidatorFactoryBean。
3. 自定义注解方式:自定义一个注解,使用javax.validation.ConstraintValidator接口实现校验逻辑,在Controller层的方法参数上加上自定义注解即可。需要在启动类上添加一个bean,即MethodValidationPostProcessor。
4. 全局异常处理方式:在Controller层的方法参数上不添加任何注解,将参数封装成一个实体类,在异常处理器中统一处理参数校验异常。需要实现ExceptionHandler接口,并在启动类上增加一个bean,即ValidatingExceptionHandler。
以上四种方式都可以实现参数校验,具体使用哪种方式,可以根据实际情况来选择。无论使用哪种方式,都需要在pom.xml中添加相关依赖,如spring-boot-starter-web、hibernate-validator等。