注解以前用的少,最近项目中发现偶尔一用,可以使得代码更加简洁
自定义一个注解
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface TestAnnotation {
public int value() default 1;
}
对这些一一解释一下:
1.Documented.java
表示这一类型的注释将通过 javadoc 和类似的默认工具进行文档化
2.Target .java
注解适用的目标类型,如果不注明,表示适用于各种类型
包括ElementType.java中定义的以下类型
- TYPE - 类,接口(包括注解类型),枚举定义
- FIELD - 字段定义(包括枚举常量)
- METHOD - 方法定义,
- PARAMETER - 参数定义,
- CONSTRUCTOR - 构造函数,
- LOCAL_VARIABLE - 本地变量,
- ANNOTATION_TYPE - 注解类型
- PACKAGE - 包定义
3.Retention.java
注解持续的范围,包括RetentionPolicy.java定义的
- SOURCE - 会被编译器忽略
- CLASS - 注解会被编译器记录在类文件中,在运行时不需要保持。这是缺省的保存方式
- RUNTIME - 注解会被编译器记录在类文件中,并且在运行时保持,因此可以通过反射获得
4.Inherited.java
注释类型被子类自动继承。也就是当我查询一个类是否有某种Annotation时,如果该类不存在,自动查找该父类是否有该Annotation
5.在注解里面就可以定义各种属性了,每种属性还可以定义缺省值default
6.使用注解更简单了
@TestAnnotation(value=2)
public static void method(){
}
7.之后我们就可以通过反射去访问该注解了
TestAnnotation anno = method.getAnnotation(TestAnnotation.class);
anno.id();
8.注解的用途
注解一般适用于各种配置和标记,例如spring等框架通过注解类来实现bean的管理
总结:
这部分的源码非常短,所以这里就不列举出来,大家可以去了解一下
分享到:
相关推荐
java错误-java.lang.ClassNotFoundException: org.aspectj.lang.annotation.Around Spring的AOP需要上述三个jar包
jackson-annotations-2.10.2.jar jackson-core-2.10.2.jar jackson-databind-2.10.2.jar NoClassDefFoundError解决
JAVA API官方文档中文版软件包 java.applet java.awt java.awt.color java.awt.datatransfer java.awt.dnd ...java.lang.annotation java.lang.instrument java.lang.management java.lang.ref
java.lang.ClassNotFoundException: javax.annotation.ParametersAreNonnullByDefault
标签:annotation、api、jakarta、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
Java.Annotation注解.part4
import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.springframework....
Java.Annotation注解.part3
Java.Annotation注解.part2
Java.Annotation注解.part1
标签:annotation、api、jakarta、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译...
主要介绍了javax.annotation.Resource注解的详解的相关资料,需要的朋友可以参考下
spring 4.0 未翻译java.lang.Object java.util.AbstractMap,V> (implements java.util.Map,V>) java.util.HashMap,V> (implements java.lang.Cloneable, java.util.Map,V>, java.io.Serializable) java.util....
标签:annotation、javax、api、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
标签:annotation、javax、api、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
JDK9及以上版本没有javax.annotation-api-***.jar包 ,无法使用注解:@Resource JDK新特性,高版本JDK没有自带的javax(java扩展包)了。或者是使用的JDK不完整。 下载javax.annotation.jar包,导入到lib文件夹下,...
两行为开启spring的注解配置 <aop:aspect id="aspect" ref="logIntercepter"> 引入具体的AOP操作类 (* com.spring.service..*(..))" id="pointCut"/>声明一个切入点,注意execution表达式的写法 ...
javase 中文API 最新版 ******************************* ...org.omg.stub.java.rmi org.w3c.dom org.w3c.dom.bootstrap org.w3c.dom.events org.w3c.dom.ls org.xml.sax org.xml.sax.ext org.xml.sax.helpers
java注解annotation