1. 注解(Annotation)
Java注解又称Java标注,是JDK5.0版本开始支持加入源代码的特殊语法元数据。
Java语言中的类、方法、变量、参数和包等都可以被标注。和Javadoc不同,Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java虚拟机可以保留标注内容,在运行时可以获取到标注内容。 当然它也支持自定义Java标注。
2. 注解体系图
元注解:java.lang.annotation
中提供了元注解,可以使用这些注解来定义自己的注解。主要使用的是Target和Retention注解。
常用注解介绍 :@Target 定义注解类型,代表注解可注释在类、接口、方法、方法型参、构造器、包等(JDK8支持比以往更多类型,可参看
ElementType下源码)
@Retention 定义注解有效范围,SOURCE、CLASS、RUNTIME分别表示JAVA源文件期间、编译为class文件期间、运行期间。RUNTIME可通过反射获取。
@Documented 注解表明这个注释是由 javadoc记录的,在默认情况下也有类似的记录工具。 如果一个类型声明被注释了文档化,它的注释成为公共API的一部分。
@Inherited 具备继承特性。当此注解被作为类注解使用时,表示子类可继承此注解。
应用场景:1. 自定义注解+拦截器 实现登录校验
2. 自定义注解+AOP 实现日志打印