注解的分类

1. 按照运行机制划分

  • 源码注解
  • 编译时注解
  • 运行时注解

源码注解:只在源码中存在,编译成.class文件就不存在了。

编译时注解:在源码和.class文件中都存在。像前面的@Override、@Deprecated、@SuppressWarnings,他们都属于编译时注解。

运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解。像@Autowired自动注入的这样一种注解就属于运行时注解,它会在程序运行的时候把你的成员变量自动的注入进来。

2. 按照来源划分

  • 来自JDK的注解
  • 来自第三方的注解
  • 自定义注解

3. 元注解

元注解是给注解进行注解,可以理解为注解的注解就是元注解。