java 提供4种注解,专门负责新注解的创建
@Target :
target(靶子,目标)表示该注解可以用在什么地方,可能的ElementType(元素的类型)参数有
@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) ///包
Spring boot启动注解 @SpringBootApplication 使用@Target(ElementType.TYPE)
@Retention :
Retention(保留)表示需要在什么级别保存该注解信息 可能的RetentionPolicy(保留策略)参数有
@Retention(RetentionPolicy.SOURCE) //被编译器忽略
@Retention(RetentionPolicy.CLASS) //注解将会被保留在Class文件中,但在运行时并不会被VM保留。这是默认行为,所有没有用Retention注解的注解,都会采用这种策略。
@Retention(RetentionPolicy.RUNTIME) //保留至运行时。所以我们可以通过反射去获取注解信息。
@Document 将注解包含在Javadoc(注释)中
@Inherited 允许子类继承父类中的注解
@Target :
target(靶子,目标)表示该注解可以用在什么地方,可能的ElementType(元素的类型)参数有
@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) ///包
Spring boot启动注解 @SpringBootApplication 使用@Target(ElementType.TYPE)
@Retention :
Retention(保留)表示需要在什么级别保存该注解信息 可能的RetentionPolicy(保留策略)参数有
@Retention(RetentionPolicy.SOURCE) //被编译器忽略
@Retention(RetentionPolicy.CLASS) //注解将会被保留在Class文件中,但在运行时并不会被VM保留。这是默认行为,所有没有用Retention注解的注解,都会采用这种策略。
@Retention(RetentionPolicy.RUNTIME) //保留至运行时。所以我们可以通过反射去获取注解信息。
@Document 将注解包含在Javadoc(注释)中
@Inherited 允许子类继承父类中的注解