springboot注解-@Target、@Retention、@Document注解简介
@Target、@Retention、@Document注解简介
源码样例: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface MthCache { String key(); } -------------------------------------------------------- @Target 注解 功能:指明了修饰的这个注解的使⽤范围,即被描述的注解可以⽤在哪⾥。 ElementType的取值包含以下⼏种: TYPE:类,接⼝或者枚举 FIELD:域,包含枚举常量 METHOD:⽅法 PARAMETER:参数 CONSTRUCTOR:构造⽅法 LOCAL_VARIABLE:局部变量 ANNOTATION_TYPE:注解类型 PACKAGE:包 -------------------------------------------------------- @Retention 注解 功能:指明修饰的注解的⽣存周期,即会保留到哪个阶段。 RetentionPolicy的取值包含以下三种: SOURCE:源码级别保留,编译后即丢弃。 CLASS:编译级别保留,编译后的class⽂件中存在,在jvm运⾏时丢弃,这是默认值。 RUNTIME:运⾏级别保留,编译后的class⽂件中存在,在jvm运⾏时保留,可以被反射调⽤。 -------------------------------------------------------- @Documented 注解 功能:指明修饰的注解,可以被例如javadoc此类的⼯具⽂档化,只负责标记,没有成员取值 --------------------------------------------------------