springboot viladate做参数的检验

我爱海鲸 2024-11-11 15:33:12 暂无标签

简介接口入参校验

一直以来都用if/else做数据入参的校验,如图:

undefined

开始觉得还行,好像什么都能干,用的都挺好的。不过随着项目的不断深入,弊端就逐渐显示了出来,代码太过繁琐,不够简洁,于是涛哥让我们在网上找数据校验的方法,于是找了viladate,开始觉得就那样只能做一下空值的校验,随着深入才发现真香,少废话,上图:

undefined

undefined

undefined

 

2022-06-13:

start

校验生效时间不能小于当前时间

/**
	 * 校验起始时间是否小于当前时间,起始时间是否大于终止时间
	 * @param effectTime 生效时间
	 */
	public static void checkEffectDate(Date effectTime){
		if (effectTime == null) {
			throw new BusinessException("生效时间不能为空");
		}
		// 获取当前的时间
		Date today = DateUtil.now();
		// compareTo()方法的返回值,第一个时间小于第二个时间返回-1,第一个时间大于第二个时间返回返回1,相等返回0
		int compare = today.compareTo(effectTime);
		// 生效时间小于当前时间,抛出异常
		if (compare > 0) {
			throw new BusinessException(“生效时间不能小于当前时间”);
		}
	}

或者在实体类上添加注解@Future(message="生效时间不能小于当前时间")

end

 

相关文章:

SpringBoot使用Validation校验参数

spring validation 校验(校验顺序)

java后端参数校验validaction(用法详解)

2024-10-17 start:

controller:

 @PostMapping("/test")
    public TestVo messageUp(@RequestBody @Valid TestPara TestPara) {
        log.info("入参【{}】",TestPara);
        return TestVo.builder()
                    .code(OfficeImMessageVo.SUCCESS)
                    .msg(OfficeImMessageVo.SUCCESS_MSG)
                .build();
    }
TestPara:
/**
 * @author haijin
 * @description: -入参
 */
@Data
public class TestPara {

    /**
     * 32位uuid
     */
    @NotBlank(message = "uuid不能为空")
    @Length(max = 32,min = 32,message = "uuid为32位")
    private String uuid;


}

TestVo:

/**
 * @author haijin
 * @description: 出参
 */
@Data
@Builder
public class TestVo {

    /**
     * 成功标识
     */
    public static final String SUCCESS = "0";

    /**
     * 失败标识
     */
    public static final String FAIL = "1";

    /**
     * 成功
     */
    public static final String SUCCESS_MSG = "成功";


    /**
     * 响应结果编码
     */
    private String code;

    /**
     * 响应结果编码内容
     */
    private String msg;

}

end

 

 

你好:我的2025

上一篇:linux相关命令等等

下一篇:好好的活着