温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java注解有什么用

发布时间:2026-10-02 08:14:56 来源:亿速云 阅读:108 作者:小樊 栏目:编程语言

Java 注解(Annotation)本质上是一种元数据(metadata),它本身对代码逻辑没有直接影响,但可以被编译器、开发工具或运行时框架读取并利用,从而改变程序的编译方式或运行行为。

简单来说:注解是“给代码加标签”,让别人(编译器/框架/JVM)看懂并做相应处理。


一、Java 注解的主要作用

1️⃣ 给编译器提供信息(编译检查)

用于让编译器进行语法或逻辑检查。

常见例子:

@Override
@Deprecated
@SuppressWarnings("unchecked")

作用:

  • @Override:检查方法是否真的重写了父类方法
  • @Deprecated:标记方法已过时
  • @SuppressWarnings:抑制编译器警告

✅ 作用阶段:编译期


2️⃣ 代码生成(编译时处理)

注解可以在编译时生成代码或配置文件,减少重复劳动。

典型应用:

  • Lombok:@Data、@Getter、@Builder
  • 编译时生成 Builder、equals、hashCode

示例:

@Data
public class User {
    private String name;
}

编译后自动生成 getter/setter。

✅ 作用阶段:编译期(注解处理器)


3️⃣ 运行时框架配置(最常用)

运行时通过反射读取注解,控制程序行为。

典型框架:

  • Spring:@Controller、@Service、@Autowired
  • JUnit:@Test
  • JPA:@Entity、@Table、@Id

示例(Spring):

@Service
public class UserService {}

Spring 启动时扫描注解,自动创建对象。

✅ 作用阶段:运行期


4️⃣ 替代 XML 配置

注解让配置更直观,减少 XML。

以前:

<bean id="userService" class="com.xxx.UserService"/>

现在:

@Service
public class UserService {}

5️⃣ 自定义注解(扩展能力)

你可以定义自己的注解,实现特定逻辑。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Log {}

结合 AOP 使用:

@Log
public void save() {}

可用于:

  • 日志
  • 权限校验
  • 事务控制

二、注解的生命周期(重要)

生命周期 说明
SOURCE 仅存在于源码,编译后消失
CLASS 存在于 .class 文件,运行时不可见
RUNTIME 运行时可通过反射读取(最常用)

三、一句话总结

Java 注解的作用:
用“标签”的方式,把“配置”和“行为”绑定到代码上,让编译器或框架自动完成工作。

如果你愿意,我也可以:

  • 讲 注解底层原理(反射 + ASM)
  • 手写一个 自定义注解 + 注解处理器
  • 对比 注解 vs XML

你想从哪一块深入?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手