自定义Spring注解

定义注解格式:
public @interface 注解名 {定义体}

一、代码
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Inherited
public @interface Init {
  String value() default "";
}

二、解析

1、@Retention– 定义该注解的生命周期
 ● RetentionPolicy.SOURCE : 表示该注解会保存在源代码中,不会存在编译之后的字节码文件(.class)中,@Override, @SuppressWarnings都属于这类注解。
  ●   RetentionPolicy.CLASS : 表示该注解会保存在源代码中,也会保存在编译之后的字节码文件(.class)中,但是程序运行时,不会加载到JVM(Java虚拟机)中。注解默认使用这种方式
  ●   RetentionPolicy.RUNTIME : 表示该注解会保存在源代码中,也会保存在编译之后的字节码文件(.class)中,当程序运行时,还会加载到JVM(Java虚拟机)中。我们自定义的注解通常使用这种方式。

2、@Target:表示该注解用于什么地方。默认值为任何元素。可用的ElementType参数包括
  ● ElementType.CONSTRUCTOR:表示用于描述构造器
  ● ElementType.FIELD:表示用于成员变量、对象、属性(包括enum实例)
  ● ElementType.LOCAL_VARIABLE:表示用于描述局部变量
  ● ElementType.METHOD:表示用于描述方法
  ● ElementType.PACKAGE:表示用于描述包
  ● ElementType.PARAMETER:表示用于描述参数
  ● ElementType.TYPE:表示用于描述类、接口(包括注解类型) 或enum声明

3、@Documented:表示是否将注解信息添加在java文档中。

4、@Inherited :定义该注释和子类的关系
     @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

5、@interface 定义注解关键字

      注解参数支持数据类型:

              1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)
    2.String类型
    3.Class类型
    4.enum类型
    5.Annotation类型
    6.以上所有类型的数组

猜你喜欢

转载自blog.csdn.net/Erin_boke/article/details/82380667