元信息
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。
Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。
由于jdk和框架大量使用注解,我也简单介绍下注解为何物,若您发现文章中存在错误或不足的地方,希望您能指出!
Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。
作用在代码的注解是
作用在其他注解的注解(或者说 元注解)是:
从 Java 7 开始,额外添加了 3 个注解:
Annotation 的每一个实现类,都 和 1 个 RetentionPolicy 关联, 和 1~n 个 ElementType 关联。
注意RetentionPolicy的三种策略,自定义注解需要设置策略
注意ElementType,自定义注解时特别关注,有多种类型
下面是个小例子:
自定义注解:
在类中使用
测试类
执行效果:
实际开发中我们也会用到自定义注解,比如:
自定义注解是很强大的功能,广泛应用于框架(Struts,hibernate,Mybatis,Spring, Spring boot,sping cloud,dubbo等)和系统开发公共模块(比如上图中的登录拦截和取当前用户)中
参考:
0. Java程序员必须掌握的5个注解! https://developer.51cto.com/art/201807/577539.htm
2. Java Annotations Tutorial https://www.javacodegeeks.com/2014/11/java-annotations-tutorial.html
https://www.javacodegeeks.com/2015/01/how-to-process-java-annotations.html
4. An introductory guide to annotations and annotation processors
https://blog.frankel.ch/introductory-guide-annotation-processor/
7. Common Annotations for the Java™ Platform™ https://download.oracle.com/otn-pub/jcp/common_annotations-1_3-mrel3-eval-spec/jsr-250.pdf?AuthParam=1590270326_b56b01b1aeacddec8562720c1b2f27b8
8. Java - Understanding @Inherited meta annotation
https://www.logicbig.com/tutorials/core-java-tutorial/annotations/inherited-meta-annotation.html
原文:https://www.cnblogs.com/dongguangming/p/12953801.html