package org.example.anno;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @Target -- 描述当前注解可以定义在什么资源上
* 属性value
* ---定义具体的资源,包括:
* --ElementType.METHOD,可以定义在方法上
* --ElementType.TYPE,可以定义在类型上
* --ElementType.FIELD,可以定义在属性上
* --ElementType.PARAMETER,可以定义在方法参数上
*
* @Retention --当前注解在什么时候生效
* 属性value
* --具体的生效标记
* --RetentionPolicy.RUNTIME,运行时有效
* --RetentionPolicy.SOURCE,源码时有效
* --RetentionPolicy.CLASS,字节码时有效
* @author weiguorong
* @date 2021/2/13 19:57
*/
@Target(value = {ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno4Swagger {
//自定义注解中的属性。相当于@MyAnno4Swagger(value = "")
String value() default "";
}
通过以上的案例讲一下大概的要点
自定义注解的格式
public @interface 注解名{
}
这格式不懂得话可以随便找一个注解Ctrl+鼠标左击进去看一下也是这样的格式
其中两个重要的注解@Target和@Retention,这两注解的常用的value值我在代码的注释中我都有写