自定义注解

  1. 当使用自定义注解时,首先创建一个注解的实体,类似于

 

 @interface表示这是一个注解类,类上面包含@Target和@Retention注解,其中

@Target:注解的作用目标

@Target(ElementType.TYPE)——接口、类、枚举、注解
@Target(ElementType.FIELD)——字段、枚举的常量
@Target(ElementType.METHOD)——方法
@Target(ElementType.PARAMETER)——方法参数
@Target(ElementType.CONSTRUCTOR) ——构造函数
@Target(ElementType.LOCAL_VARIABLE)——局部变量
@Target(ElementType.ANNOTATION_TYPE)——注解
@Target(ElementType.PACKAGE)——包

@Retention:注解的保留位置

RetentionPolicy.SOURCE:这种类型的Annotations只在源代码级别保留,编译时就会被忽略,在class字节码文件中不包含。
RetentionPolicy.CLASS:这种类型的Annotations编译时被保留,默认的保留策略,在class文件中存在,但JVM将会忽略,运行时无法获得。
RetentionPolicy.RUNTIME:这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用。

  2.当需要指定注解的属性值时,可以考虑再注解实体中使用枚举类,对应属性的取值,将从枚举类中获取。如下:

 

   3.参照@ComponentScans注解定义注解集合

 

注解集合要求属性类也必须是一个注解。

 注解集合的使用为:

@ComponentScans(value = @ComponentScan(注解中的具体属性指向)

 

posted @ 2021-08-17 14:32  小拾柒~  阅读(465)  评论(0)    收藏  举报