自定义注解的使用

本文介绍了Java中的自定义注解,包括其书写格式、特殊属性`value`的使用,以及元注解`@Target`和`@Retention`的作用。自定义注解常与SpringBoot的AOP结合使用,通过`AnnotatedElement`接口解析注解。文章还提供了获取和判断注解的API示例。
摘要由CSDN通过智能技术生成

 自定义注解介绍

注解又称标注,是java1.5的新特新

可以对类、构造器、方法、成员变量、参数等等进行标注。

比如:当一个方法参数被标记之后,


自定义注解的书写格式

public @interface 注解名称 {

    public 属性类型 属性名() default 默认值 ;

}

自定注解的特殊属性名vlue

在自定义注解中,有一个特殊的属性名:vlue

1.当有且仅有一个名字叫vlue的属性,且其他属性都自带默认值时,在标记时如果只需要给名为vlue的属性赋值,那么可以省略名称不写

 在使用时直接写@MyAnnotation("abc")相当于@MyAnnotation(vlue="abc")

元注解

常用的元注解有两个,用来加载注解类上面,标明该注解的使用位置和生命周期

  • @Target: 约束自定义注解只能在哪些地方使用
  • @Retention:申明注解的生命周期

@Target常用值如下

  1.  TYPE,类,接口  
  2. FIELD, 成员变量
  3. METHOD, 成员方法
  4. PARAMETER, 方法参数
  5. CONSTRUCTOR, 构造器
  6. LOCAL_VARIABLE, 局部变量

@Retention常用值

  1. SOURCE: 注解只作用在源码阶段,生成的字节码文件中不存在  
  2. CLASS:  注解作用在源码阶段,字节码文件阶段,运行阶段不存在,默认值.  
  3. RUNTIME:注解作用在源码阶段,字节码文件阶段,运行阶段(开发常用)

具体使用原理

一般自定义注解是结合springboot的AOP来进行使用的

所有的注解都是一个叫Annotation类的对象,该类实现了AnnotatedElement方法接口,这是一个有解析注解方法的接口

所有的类成分Class, Method , Field , Constructor,都实现了AnnotatedElement接口他们都拥有解析注解的能力

常用API

  • Annotation[]   getDeclaredAnnotations() //获得当前对象上所有的注解对象并放在注解数组中,返回注解数组。
  • Annotation getDeclaredAnnotation(Annotation.Class) //获得当前对象上指定注解类型的注解对象
  • boolean isAnnotationPresent(Annotation.Class) //判断当前类上有没有使用该类型注解

解析注解的技巧

 注解在哪个成分上,我们就先拿哪个成分对象。

 比如注解作用成员方法,则要获得该成员方法对应的Method对象,再来拿上面的注解  

 比如注解作用在类上,则要该类的Class对象,再来拿上面的注解  

 比如注解作用在成员变量上,则要获得该成员变量对应的Field对象,再来拿上面的注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值