在 Java 中,**注解(Annotation)**可以从不同角度进行分类,常见的分类方式有以下几种:
根据注解可以用在什么地方,由 @Target 定义:
类 / 接口 / 枚举注解
@Target(ElementType.TYPE)
例如:@Service、@Controller
方法注解
@Target(ElementType.METHOD)
例如:@Override、@RequestMapping
字段 / 属性注解
@Target(ElementType.FIELD)
例如:@Autowired、@Column
参数注解
@Target(ElementType.PARAMETER)
例如:@RequestParam
构造方法注解
@Target(ElementType.CONSTRUCTOR)
局部变量注解
@Target(ElementType.LOCAL_VARIABLE)
例如:@SuppressWarnings
包注解
@Target(ElementType.PACKAGE)
由 @Retention 定义注解保留到哪个阶段:
源码级注解(SOURCE)
@Override、@SuppressWarnings编译期注解(CLASS)
.class 文件中,但运行时不可见运行时注解(RUNTIME)
@Autowired、@Transactional@Override@Deprecated@SuppressWarnings@FunctionalInterface@Target@Retention@Documented@Inherited@Repeatable(Java 8+)@Component、@Service、@Controller、@Autowired@Entity、@Table、@Id@Test、@Before开发者自己定义的注解:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value();
}
@Repeatable)✅ 总结一句话:
Java 注解可按作用位置、生命周期、用途分为多种类型,最常见的是:内置注解、元注解、框架注解和自定义注解。
如果你是想了解Spring 注解分类或自定义注解怎么写,也可以继续问我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。