元注解是描述其他注解的注解
四种元注解:
@Target
@Retention
@Documented
@Inherited
@Target:用于修饰注解的范围,通过ElementType表示:
CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PACKAGE,PARAMETER,TYPE(类和接口,包括注解类型和枚举类型)
@Target
public @Interface Entity{
public string value() default "",
public boolean isLazyLoad() default true;
}
@Retention :修饰注解的生命周期,通过RetentionPolicy表示:
SOURCE:只存在于源文件,一旦编译为class则失效,使用较少
CLASS:存在于Class文件,
RUNTIME:存在于class文件中,运行时有效,可以通过反射来获得注解相关信息
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @Interface EntityProperty{
public String value() default "";
}
@Documented:在生成javadoc文件时有效
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documentd
public @Interface EntityProperty{
public String value() default "";
}
@Inherited:是一个标记注解,添加该元注解的注解作用于某个java类时,如果有子类,则注解实际作用于子类。只能作用于类,不能作用于接口和方法。
自定义注解:
public @Interface 注解名 {注解体}