@Target:
@Target注解用于注解使用的范围,
ps:@Target(ElementType.TYPE) 被此注解标识的注解只能作用于接口或类上
ElementType:
取值 | 范围 |
---|---|
METHOD | 作用于方法之上 |
FIELD | 作用于域之上 |
PARAMETER | 作用于参数之上 |
CONSTRUCTOR | 作用于构造方法之上 |
LOCAL_VARIABLE | 作用于局部变量之上 |
ANNOTATION_TYPE | 作用于注解类型之上,被@Interface修饰的类型 |
PACKAGE | 记录java文件的package信息 |
@Retention
@Retention注解定义了该Annotation被保留的时间;
ps:@Retention(RetentionPolicy.RUNTIME)
RetentionPolicy:
取值 | 范围 |
---|---|
SOURCE | 源文件保留 |
CLASS | class保留 |
RUNTIME | 运行时保留 |
@Documented
@Documented注解用于给类添加注释,在生成doc文档时发挥作用
ps:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {`
@Inherited
@Inherited注解标识该注解会被子类继承,但成员属性、方法并不受注释影响