简易Java注解自动validate工具

本文介绍了如何在小型项目中利用Java注解创建一个简单的参数验证工具。通过自定义注解如NotNull、Length等,结合校验逻辑处理类ParamChecker,实现了接口入参的自动化校验功能。
摘要由CSDN通过智能技术生成

对应Java后端开发来说,Hibernate Validator参数自动化校验非常熟悉了,结合Spring Aop在接口入参自动校验功能非常强大,可配置的校验规则也非常多。不过在一些体量不是那么大的项目里,业务规则也不是特别复杂,结合Java注解,实现了一个非常简易的入参校验工具。主要包含了参数规则注解定义,以及校验逻辑实现两部分。

  • 规则注解定义Rule
    @Target({ ElementType.TYPE, ElementType.FIELD })
    @Retention(RetentionPolicy.RUNTIME)
    @Repeatable(ParamRules.class)
    public @interface Rule {
    
    	/**
    	 * 业务场景即分组名称
    	 * 
    	 * @return
    	 */
    	String group() default "";
    
    	/**
    	 * 是否为空标签
    	 * 
    	 * @return
    	 */
    	NotNull notNull() default @NotNull;
    
    	/**
    	 * 字段长度
    	 * 
    	 * @return
    	 */
    	Length len() default @Length;
    
    	/**
    	 * 长度范围
    	 * 
    	 * @return
    	 */
    	Size size() default @Size;
    
    	/**
    	 * 区间
    	 * 
    	 * @return
    	 */
    	Rang rang() default @Rang;
    
    	/**
    	 * 字段校验规则,正则表达式
    	 * 
    	 * @return
    	 */
    	Regex regex() default @Regex;
    }
    

    将每个单独的规则另外定义为注解。

  • NotNull

@Target(ElementType.ANNOTATION_TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface NotNull {

	String message() default "";

}
  • Length
@Target(ElementType.ANNOTATION_TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Length {

	int length() default 0;

	String message() default "";

}
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值