自定义注解

自定义注解

 自定义注解

 

 

 元注解

修饰注解的注解。

 注解的解析

 

 

解析类上的注解 

 

注解的应用场景

 

State自定义注解 

import com.itheima.validation.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
 
import java.lang.annotation.*;
import java.lang.reflect.Field;
 
@Documented  // 元注解,用来标识state注解可以用来抽取到帮助文档中的
//  @Target标识将来用在哪些地方
@Target({ElementType.FIELD})  //  例如 类上、属性上、方法上、参数上  
//  该注解用在属性上  所以为FIELD
@Retention(RetentionPolicy.RUNTIME)  //  注解保留在运行阶段
@Constraint(validatedBy = {StateValidation.class})  //  谁提供校验的规则  指定提供校验规则的类
  
public @interface State {
    //  校验失败后的信息
    String message() default "state参数的值只能是已发布或者草稿";
    //  指定分组
    Class<?>[] groups() default {};
    //  负载  获取到State注解的附加信息
    Class<? extends Payload>[] payload() default {};
}

 StateValidation.java 

 

import com.itheima.anno.State;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
 
//                       ConstraintValidator<给哪个注解提供校验规则, 校验的数据类型>
public class StateValidation implements ConstraintValidator<State, String> {
    @Override              // String value 将来要校验的数据
    public boolean isValid(String value, ConstraintValidatorContext context) {
        //  提供校验规则
        if (value == null) {
            return false; //  return false; 返回false校验不通过
        }
        if (value.equals("已发布") || value.equals("草稿")) {
            return true;
        }
        return false;
    }
}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值