spring boot 自定义注解以及validator的使用

1.注解的概念

  1. 注解是一种元数据模式。即注解是属于java的一种数据类型,和类、接口、数组、枚举类似。
  2. 注解不会对所修饰的代码产生直接的影响

2.注解的使用范围

  1. 类、接口、枚举:@Controller 标记controller层、@Service 标记service层、@Mapper 标记DAO,自动映射
  2. 属性 @Autowired 自动装配
  3. 方法 @Override 表示重写
  4. 方法形式参数 @Param 设置传递参数的名称
  5. 构造方法
  6. 局部变量
  7. 注解类型 @Target 标记此注解类的使用范围

3.注解的基本语法

  1. 注解类型的声明:注解在Java中,与类、接口、枚举类似,因此声明语法基本一致,只是所使用的关键字有所不同,其使用@interface。在底层实现上,所有定义的注解都会自动继承java.lang.annotation.Annotation接口。
public @interface TestAnnotation{
}
  1. 注解类型的实现部分:其实现部分只能定义注解类型元素(annotation type element)。
//class的一维数组类型
Class<? extends Payload>[] payload() default { };
//基本数据类型
int ret() default 7;
//String类型
String message() default "message params error";
  1. 定义注解类型的特点:
    1.访问修饰符必须为public,不写默认为public 。
    2.该元素类型只能是基本数据类型,String、Class、枚举类型、注解类型(体现了注解的嵌套效果),以及上述类型的一维数组。
    3.()不是定义方法参数的地方,也不能在括号中定义任何参数,仅仅只是一个特殊语法
    4.default代表默认的值,值必须和第2点定义的类型一致
    5.如果没有默认值,代表后续使用注解时必须给该类型元素赋值

4.自定义注解所使用到的元注解

  1. @Target注解,专门用来限定某个自定义注解能被应用到哪些Java元素上面
//只适用于属性
@Target(ElementType.FIELD)
//属性和方法都适用
@Target({ElementType.METHOD, ElementType.TYPE})

其中ElementType支持的类别为

public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,

    /** Field declaration (includes enum constants) */
    FIELD,

    /** Method declaration */
    METHOD,

    /** Formal parameter declaration */
    PARAMETER,

    /** Constructor declaration */
    CONSTRUCTOR,

    /** Local variable declaration */
    LOCAL_VARIABLE,

    /** Annotation type declaration */
    ANNOTATION_TYPE,

    /** Package declaration */
    PACKAGE,

    /**
     * Type parameter declaration
     *
     * @since 1.8
     */
    TYPE_PARAMETER,

    /**
     * Use of a type
     *
     * &#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值