注解的生命周期

1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃,示例:@Override

java 复制代码
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期,示例:@NotNull

java 复制代码
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
public @interface NotNull {
    String value() default "";
}

3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在,这类注解很多,自定义的注解往往是RUNTIME,程序运行时需要一直存在,如spirng的各类引入注解,示例:@Resource

java 复制代码
@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
public @interface Resource 
相关推荐
阳光宅男@李光熠29 分钟前
【电子通识】一起学习TDK的EMC基础——电池兼容设计方法概述
java·前端·数据库
张宜强40 分钟前
025 安居租赁 · 房屋租赁平台
java·课程设计
Java_2017_csdn1 小时前
ReentrantLock 与 Redis RLock 对比解读
java
YDS8291 小时前
Small Spring IOC篇:实现 Bean 的定义、注册、获取
java·spring
边境悍匪1 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring
需要8261 小时前
Arthas 一个命令排查线上问题
java·jvm·spring·spring cloud
Kyrie_kk2 小时前
Java--ProcessBuilder操作系统进程
java·后端
SamDeepThinking2 小时前
关于java final关键字的可见性
java·后端·面试
Wang's Blog2 小时前
Java 项目实战: 外卖平台-MyBatis-Plus分页插件与员工分页查询
java·项目开发
MetaLite2 小时前
全网最好的SpringBoot接口请求对象设计
java·spring boot·后端