温馨提示×

温馨提示×

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

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

java注解有哪几种

发布时间:2026-10-23 00:45:13 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

在 Java 中,**注解(Annotation)**可以从不同角度进行分类,常见的分类方式有以下几种:


一、按作用对象(Target)分类

根据注解可以用在什么地方,由 @Target 定义:

  1. 类 / 接口 / 枚举注解

    @Target(ElementType.TYPE)
    

    例如:@Service、@Controller

  2. 方法注解

    @Target(ElementType.METHOD)
    

    例如:@Override、@RequestMapping

  3. 字段 / 属性注解

    @Target(ElementType.FIELD)
    

    例如:@Autowired、@Column

  4. 参数注解

    @Target(ElementType.PARAMETER)
    

    例如:@RequestParam

  5. 构造方法注解

    @Target(ElementType.CONSTRUCTOR)
    
  6. 局部变量注解

    @Target(ElementType.LOCAL_VARIABLE)
    

    例如:@SuppressWarnings

  7. 包注解

    @Target(ElementType.PACKAGE)
    

二、按生命周期(Retention)分类

由 @Retention 定义注解保留到哪个阶段:

  1. 源码级注解(SOURCE)

    • 只在源码中存在,编译后丢弃
    • 例如:@Override、@SuppressWarnings
  2. 编译期注解(CLASS)

    • 存在于 .class 文件中,但运行时不可见
    • 常用于编译时处理
  3. 运行时注解(RUNTIME)

    • 运行时可通过反射获取
    • 例如:@Autowired、@Transactional

三、按功能 / 用途分类

1. 内置注解(Java 自带)

  • @Override
  • @Deprecated
  • @SuppressWarnings
  • @FunctionalInterface

2. 元注解(用于定义注解的注解)

  • @Target
  • @Retention
  • @Documented
  • @Inherited
  • @Repeatable(Java 8+)

3. 框架注解(第三方)

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

4. 自定义注解

开发者自己定义的注解:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
    String value();
}

四、按是否可重复(Java 8+)

  • 普通注解(只能出现一次)
  • 可重复注解(@Repeatable)

✅ 总结一句话:

Java 注解可按作用位置、生命周期、用途分为多种类型,最常见的是:内置注解、元注解、框架注解和自定义注解。

如果你是想了解Spring 注解分类或自定义注解怎么写,也可以继续问我。

向AI问一下细节

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

AI
助
手