注解的生命周期

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 
相关推荐
送秋三十五1 分钟前
Spring 源码---------Spring Core
java·数据库·spring
悟空码字2 分钟前
SpringBoot + 微信支付实现“扫码开门,取货自动扣款”售货柜
java·spring boot·后端
沐雪轻挽萤7 分钟前
1. C++17新特性-序章
java·c++·算法
殷紫川11 分钟前
Spring AI 整合火山引擎豆包向量库搭建企业知识库:我踩过的 10 个致命坑与终极解决方案
java·ai编程
呆呆在发呆.14 分钟前
JavaEE初阶
java·jvm·网络协议·学习·udp·java-ee·tcp
算.子14 分钟前
【Spring 实战】Spring AI 进阶专题:Token 成本优化与 Structured Output
java·人工智能·spring
Gopher_HBo20 分钟前
ReentrantReadWriteLock源码讲解
java·后端
农村小镇哥22 分钟前
PHP数据传输流+上传条件+上传步骤
java·开发语言·php
wuxinyan12323 分钟前
Java面试题48:一文深入了解java设计模式
java·设计模式·面试
济源IT小伙一枚27 分钟前
⚡️硬核实战:Spring AI + Ollama 从零搭建私有化多角色 AI 助手|RAG 知识库 + MCP 控制台全实现
java·人工智能·spring