目录
一、三者区别
@NotNull:适用于基本数据类型Integer、Long、Double等;
@NotBlank:适用于String类型;
@NotEmpty:适用于String、Collection集合、Map、数组等;
二、示例
SysAppBo
/**
* @Author ChenSir
* @Date 2023/7/17
**/
@Data
@NoArgsConstructor
public class SysAppBo extends BaseEntity {
/**
* 主键
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* app编码
*/
@NotBlank(message = "app编码不能为空", groups = {AddGroup.class})
private String appCode;
/**
* app名称
*/
@NotBlank(message = "app名称不能为空", groups = {AddGroup.class})
private String name;
/**
* 状态
*/
private String status;
/**
* 显示顺序
*/
private Integer appSort;
/**
* 图标
*/
private String icon;
/**
* treeNode
*/
@NotEmpty(message = "treeNode不能为空")
private List<String> treeNode;
}
XxxGroup
public interface EditGroup {
}
public interface AddGroup {
}
controller/add
@RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "{repeat.submit.message}")
@PostMapping("/add")
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysAppBo bo) {
if (!sysAppService.checkAppNameUnique(bo)) {
return R.fail("新增APP'" + bo.getName() + "'失败,APP名称已存在!");
} else if (!sysAppService.checkAppCodeUnique(bo)) {
return R.fail("新增APP'" + bo.getName() + "'失败,APP编码已存在!");
}
return toAjax(sysAppService.add(bo));
}
controller/edit
@SaCheckPermission("system:app:edit")
@PutMapping("/edit")
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysAppBo bo) {
if (!sysAppService.checkAppNameUnique(bo)) {
return R.fail("修改APP'" + bo.getName() + "'失败,APP名称已存在!");
} else if (!sysAppService.checkAppCodeUnique(bo)) {
return R.fail("修改APP'" + bo.getName() + "'失败,APP编码已存在!");
}
return toAjax(sysAppService.updateApp(bo));
}