注解
Spring中大量用到注解,在使用过程中有些疑问,借此对注解进行深入的学习。
Annotation:注解
- Java5开始注解的支持。
- 什么是注解:代码中特殊的标识,用于替换配置文件。传统方式通过xml配置文件描述一个类如何运行,有了注解之后,可通过注解告诉类如何运行。
- 例:
// 抑制编译期的未指定泛型、未使用和过时警告
@SuppressWarnings({ "rawtypes", "unused", "deprecation" })
// 重写
@Override
元注解:Java提供四个元注解,用于定义其他注解。(修饰注解的注解,元注解)
- @Target(注解的使用范围)
- @Retention(注解保留的时间范围)
- @Documented(javadoc 工具为类生成帮助文档是否保留注解信息)
- @Inherited(注解具有继承性)
@Target(注解的使用范围)
// @Target({ElementType.TYPE, ElementType.METHOD})
// 枚举类: ElementType取值如下:
package java.lang.annotation;
public enum ElementType {
TYPE,// 类,接口(包括注释类型)或枚举声明
FIELD,// 成员变量字段声明(包括枚举常量)
METHOD, // 方法
PARAMETER,// 参数
CONSTRUCTOR,// 构造方法
LOCAL_VARIABLE,// 局部变量
ANNOTATION_TYPE,// 注解类
PACKAGE,// 包
TYPE_PARAMETER, // 类型参数
TYPE_USE // 使用类型
}
@Retention(注解保留的时间范围)
// 枚举类:RetentionPolicy 取值:如下
// @Retention(RetentionPolicy.RUNTIME)
public enum RetentionPolicy {
SOURCE,// 注解仅存在与源码中,class文件中不存在注解
CLASS, // 默认:存在于class文件中,运行时不存在
RUNTIME // 运行时,可通过反射获取。
}