SpringBoot接口入参校验的几种方式
Spring Boot提供了多种方式来对接口入参进行验证,以下是几种常见的方式:
使用Spring Validator:
通过实现
javax.validation.Validator
接口或者使用Spring的@Validated
注解,可以利用注解如@NotNull
、@Size
等来对参数进行校验。使用
@RequestParam
注解的校验:在
@RequestParam
注解中,可以通过设置required
属性为true
,并使用@Min
、@Max
等注解来对参数进行校验。使用
@ModelAttribute
注解:在方法参数前使用
@ModelAttribute
注解,并结合@Valid
注解,可以对绑定的对象进行校验。使用
HandlerMethodArgumentResolver
自定义参数解析和验证逻辑:通过实现
HandlerMethodArgumentResolver
接口,可以自定义参数解析和验证逻辑。
以下是使用@Validated
和javax.validation
注解的示例代码:
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
@RestController
@Validated
public class MyController {
@PostMapping("/submit")
public String submitData(@Valid @RequestBody MyData data) {
// 处理逻辑
return "Data processed";
}
}
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
public class MyData {
@NotBlank(message = "Name cannot be blank")
@Size(min = 2, max = 100)
private String name;
// Getters and Setters
}
在这个例子中,@Valid
触发校验过程,@NotBlank
和 @Size
确保 name
字段不为空且长度在2到100之间。如果校验失败,Spring将会返回一个400 Bad Request响应,并包含校验错误信息。
评论已关闭