Java注解
2025/9/23...小于 1 分钟
Java注解
说一下你对注解的理解?
Java注解本质上是一个标记,注解可以标记在类上、方法上、属性上等,标记自身也可以设置一些值,有了标记之后,我们就可以在编译或者运行阶段去识别这些标记,然后搞一些事情,这就是注解的用处。
例如:
AOP,使用注解作为切点就是运行期注解的应用
lombok,就是注解在编译期的运行
Spring 常见的 Autowired ,就是 RUNTIME 的,所以在运行的时候可以通过反射得到注解的信息,还能拿到标记的值 required
注解生命周期有三大类,分别是:
RetentionPolicy.SOURCE
:给编译器用的,不会写入 class 文件RetentionPolicy.CLASS
:会写入 class 文件,在类加载阶段丢弃,也就是运行的时候就没这个信息了RetentionPolicy.RUNTIME
:会写入 class 文件,永久保存,可以通过反射获取注解信息