# ParamsValidation 参数校验
MornBoot提供参数自动校验功能,事实上Spring对参数校验的支持已经非常完善了,而MornBoot不仅支持SpringValidation (opens new window) 所有的校验方式,同时完成了对校验结果的自动处理。
Since:v1.2.0
- ExceptionInterpreter:将异常信息转义为友好的提示信息
# 必要配置
application.properties
#开启异常处理(默认)
morn.exception.enabled=true
# 推荐配置
Maven
<!--支持更多校验异常-->
<dependency>
<groupId>site.morn.boot</groupId>
<artifactId>morn-boot-interpreter</artifactId>
<version>${morn.version}</version>
</dependency>
# 校验规则
使用注解约束对象属性
- 支持javax.validation注解
- 支持hibernate.validator注解
@NotNull(groups = {Add.class, Update.class, Login.class})
@Size(min = 4, max = 32)
private String username;
@NotNull(groups = {Add.class, Login.class})
@Size(min = 4, max = 64)
private String password;
# 分组校验
使用Validated
注解校验入参,MornBoot内置了一些校验组,用于区分不同业务场景。你也可以自定义其它校验组。
- Add
- Delete
- Login
- Operate
- Patch
- Put
- Query
- Search
- Update
@PostMapping("/login")
public Object login(@Validated(Login.class) User user) {
return RestBuilders.successMessage(); // 校验失败时,此处代码不会执行
}
Validated
注解的values
是可选参数,当不传入任何校验组时,默认对所有规则进行校验。
# 执行校验
发送请求:
curl -X POST \
http://localhost:8080/login \
-d password=123
输出结果:
user.password个数必须在4和32之间,user.username不能为null