Skip to content

Koala Validation Starter

考拉代码校验启动模块

基于spring-boot-starter-validation, 提供接口参数校验功能

快速开始

实体类

在需要校验的实体类上增加校验注解:

java
public class UserEntity {
    
  @NotBlank(message = "用户名不能为空")
  protected String name;
}
public class UserEntity {
    
  @NotBlank(message = "用户名不能为空")
  protected String name;
}

其余注解请参考Jakarta Bean Validation API

接口

在需要校验的接口上, 增加校验注解:

java
public interface UserApi {
  @PostMapping
  DataResponse<User> add(@Validated @RequestBody UserEntity entity);
}
public interface UserApi {
  @PostMapping
  DataResponse<User> add(@Validated @RequestBody UserEntity entity);
}

进阶

分组校验

在实际业务中, 可能会出现同一数据实体, 在新增和更新时的校验内容不同的情况

模块内置了两个分组接口CreateUpdate, 以新增为例:

java
public class UserEntity {
    
  @NotBlank(message = "用户名不能为空", groups = Create.class)
  protected String name;
}

public interface UserApi {
  @PostMapping
  DataResponse<User> add(@Validated(Create.class) @RequestBody UserEntity entity);
}
public class UserEntity {
    
  @NotBlank(message = "用户名不能为空", groups = Create.class)
  protected String name;
}

public interface UserApi {
  @PostMapping
  DataResponse<User> add(@Validated(Create.class) @RequestBody UserEntity entity);
}

如需自定义分组, 可继承jakarta.validation.groups.Default

自定义提示消息

校验失败提示消息可配置为如下格式:

java
public class UserEntity {
    
  @NotBlank(message = "{user.name.not-blank}", groups = Create.class)
  protected String name;
}
public class UserEntity {
    
  @NotBlank(message = "{user.name.not-blank}", groups = Create.class)
  protected String name;
}

resources目录下创建配置文件messages.properties:

properties
user.name.not-blank=用户名不能为空
user.name.not-blank=用户名不能为空