# ParamsValidation 参数校验

MornBoot提供参数自动校验功能,事实上Spring对参数校验的支持已经非常完善了,而MornBoot不仅支持SpringValidation (opens new window) 所有的校验方式,同时完成了对校验结果的自动处理。

Since:v1.2.0

# 必要配置

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