如何写一个自定义注解
元注解: 就是定义注解所用的注解, 在 java.lang.annotation 中可找到
@Target: 定义注解修饰的范围,例如类、方法、变量等
@Retention: 定义注解的生命周期, 例如 编译、运行时等
@Documented: 声明注解,应当被文档化,
@Inherited: 定义注解是否会被继承
元注解的取值:
@Target 取值:
1、CONSTRUCTOR :用于描述构造器
2、FIELD :用于描述域,字段定义,包括enum常量
3、LOCAL_VARIABLE :用于描述局部变量
4、METHOD : 用于描述方法
5、PACKAGE : 用于描述包
6、PARAMETER :用于描述参数
7、TYPE : 用于描述类、接口(包括注解类型)、 枚举
8、 如果无值: 可用在任何地方
jdk1.8 后新增: TYPE_PARAMETER 参数类型
TYPE_USE 类型的使用
@Retention取值:
1、SOURCE : 只在源文件保留
2、CLASS : 在class 文件中保留
3、RUNTIME : 在运行时保留
@Documented 无值
@Inherited 无值
示例, 以spirng的@Component 注解为例
package org.springframework.stereotype; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Indexed //此为自定义的注解
//该注解不支持继承,故没有@Inherited public @interface Component { String value() default ""; }
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号