@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited注解

这些都是Java中的注解(Annotation),它们的作用如下:

  1. @Target

@Target注解用于指定注解可以应用的程序元素类型,它有一个ElementType枚举类型的参数,可以取值为:

  • ElementType.TYPE:可以用于类、接口和枚举类型。

  • ElementType.FIELD:可以用于字段(包括枚举常量)。

  • ElementType.METHOD:可以用于方法。

  • ElementType.PARAMETER:可以用于方法的参数。

  • ElementType.CONSTRUCTOR:可以用于构造函数。

  • ElementType.LOCAL_VARIABLE:可以用于局部变量。

  • ElementType.ANNOTATION_TYPE:可以用于注解类型。

  • ElementType.PACKAGE:可以用于包。

  • ElementType.TYPE_PARAMETER:可以用于类型参数声明(Java 8新增)。

  • ElementType.TYPE_USE:可以用于使用类型的任何语句中(Java 8新增)。

  1. @Retention

@Retention注解用于指定注解的生命周期,它有一个RetentionPolicy枚举类型的参数,可以取值为:

  • RetentionPolicy.SOURCE:注解只在源代码中存在,编译时会被忽略。

  • RetentionPolicy.CLASS:注解在编译时被保留,但不会被加载进JVM运行时环境中。

  • RetentionPolicy.RUNTIME:注解在运行时被保留,可以通过反射机制获取注解信息。

  1. @Documented

@Documented注解表示被它修饰的注解将被javadoc工具提取成文档。

  1. @Inherited

@Inherited注解表示被它修饰的注解具有继承性,即如果一个类声明了被@Inherited修饰的注解,那么它的子类也将具有这个注解。

总之,Java中的注解可以用于提供元数据信息,它们可以用来描述类、方法、字段、参数等程序元素的特征。@Target、@Retention、@Documented和@Inherited等注解都是预定义的注解,它们可以用于指定注解的应用范围、生命周期、文档化等特性。

你可能感兴趣的:(笔记,java,spring)