代码中的特殊标记。这些标记可以在编译、类加载、运⾏时被读取,并执⾏相对 应的处理
自定义注解
自定义注解首先要考虑什么时候解析这个注解, 这时候就需要用到@Retention 注解,
@Retention注解传⼊的是RetentionPolicy枚举,该枚举有三个常量,分别是SOURCE、CLASS和
RUNTIME
- SOURCE 注解表示仅存在源级别中,并由编译器忽略
- CLASS 在编译时由编译器保留,但会被JVM忽略
- RUNTIME 会被jvm保留,运行环境可以使用
如果你想要在编译期间处理注解相关的逻辑,你需要继承AbstractProcessor 并实现
process⽅法。⽐如可以看到lombok就⽤AnnotationProcessor继承了AbstractProcessor。
理解上面内容就得到了代码.java编译到.class的过程
可以用自定义注解搭配aop