本文是Spring系列文章的一部分。其他相关文章见
本文整理注解的相关知识。
提示:以下是本篇文章正文内容,下面案例可供参考
一、注解是什么?
注解提供了一种为程序元素设置z元数据的方法
- 元数据是添加到程序元素,如方法、字段、类和包上的额外信息
- 注解是一种分散式的元数据设置方式,XML是集中式
- 注解不能直接干扰程序代码的运行
二、注解和接口的区别
个人理解:注解就是接口。
可以通过javac进行编译,然后通过javap -verbose进行反编译。就可以看到
public interface xx extends java.lang.annotation.Annotation
其中Annotation就是代表注解的接口。
三、注解的功能
- 作为特定的标记,用于告诉编译器一些信息 @Override
- 编译时动态处理,如动态生成代码 @Getter,@Setter
- 运行时动态处理,作为额外信息载体,如获取注解信息 @RequestMapping(value=“test”,method=Request.GET)
四、注解的分类
- 标准注解 @Override,@Deprecated,@SuppressWarning
- 元注解 @Retention,@Target,@Inherited,@Documented
- 自定义注解
五、注解的工作原理
- 创建AnnotationInvocationHandler实例并传入前面的map
- JVM使用JDK动态代理为注解生成代理类,并初始化处理器
- 调用invoke方法,通过传入方法名返回注解对应的属性值