自定义注解
@Target
标记这个注解应该是哪种 Java 成员。
ElementType.TYPE 用于类的任何元素
ElementType.FIELD 用于字段或属性
ElementType.METHOD 用于方法级注释
ElementType.PARAMETER 用于方法的参数
ElementType.CONSTRUCTOR 用于构造函数
ElementType.LOCAL_VARIABLE 用于局部变量
ElementType.ANNOTATION_TYPE 用于注释类型
ElementType.PACKAGE 用于包声明
ElementType.TYPE 用于描述类、接口(包括注解类型) 或 enum 声明
ElementType.TYPE_PARAMETER 用于描述参数
ElementType.TYPE_USE
@Retention
标记这个注解的生命周期
RetentionPolicy.RUNTIME 在运行时有效,被编译器丢弃
RetentionPolicy.CLASS 在 class 文件有效,可能会被虚拟机忽略
RetentionPolicy.SOURCE 在原文件中有效
@Documented
标记这个注解应该被 javadoc工具记录
@Inherited
标记这个注解是继承于哪个注解类,且仅适用于类声明。(默认:注解并没有继承于任何子类)
可以超类继承,当用户查询注释类型并且该类没有此类型的注释时。
@Constraint(仅在 Spring 中存在)
标记这个注解是限定自定义注解的方法
default:默认