开始学习注解时觉得注解的符号看不太习惯,加上概念上也觉得比较难得懂,后来发现这是一个很有用的东西,从新翻来看看。
注解还是很重要的在开发中,现在的开发都开始基于注解进行开发,JPA是基于注解,SPringMVC,SpringBoot等的大部分框架都是基于注解进行开发,特别是springBoot简化了配置文件,使之更像是JAVA的。
注解出现于 JDK1.5之后
注解相当于一种标记,在程序中加入注解就等于为程序打上某种标记,没有加就等于没有加任何的标记,以后JAVAC编译器,开发工具和其他程序可以通过反射来了解你的类,及元素上有无何种标记,看你的程序上有什么标记就去干相应的事情。标记可以加在 包、类、属性、方法、方法的参数以及局部变量上。
简单自定义注解如下:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Controller {
}
其中Controller就是自定义的注解,@Target........这些加在注解上的注解称为元注解
@Target 指定当前注解可以用于哪些地方,比如:类上、字段上 还是 方法上等等(常用),
ElementType.TYPE 类, 接口 (包括注释类型), 或 枚举 声明
ElementType.FIELD 字段声明
ElementType.METHOD 方法声明
@Retention 指定注解保留的时间
RetentionPolicy.SOURCE 注解保留在源码级别,编译时被忽略
RetentionPolicy.CLASS 在源码级别存在,编译时也存在,被类加载器加载到内存中后就消失了
RetentionPolicy.RUNTIME 在程序运行时一直都存在。