Java 注解(Annotation)本质上是一种元数据(metadata)机制,用来给代码“打标签”,让编译器、框架或工具在编译期、类加载期或运行期读取并利用这些信息。
之所以要用 Java 注解,核心原因可以归纳为下面几点:
在没有注解之前,很多配置和逻辑都需要写大量重复代码或 XML。
例子:
// 不用注解(传统方式)
public class User {
private int id;
private String name;
// getter / setter 一大堆
}
// 使用注解(Lombok)
@Data
public class User {
private int id;
private String name;
}
✅ 注解让“做什么”和“怎么做”分离,少写重复代码。
早期 Java EE / Spring 大量使用 XML 配置,维护困难。
XML 方式:
<bean id="userService" class="com.xxx.UserService"/>
注解方式:
@Service
public class UserService {}
✅ 注解让配置更直观,离代码更近,可读性更好。
Java 自带很多编译期注解:
@Override // 检查方法是否真的重写了父类方法
@Deprecated // 标记过时
@SuppressWarnings("unchecked")
作用:
✅ 注解是“给机器看的注释”
主流框架几乎都依赖注解:
| 框架 | 注解示例 |
|---|---|
| Spring | @Controller @Autowired @Transactional |
| MyBatis | @Select @Insert |
| JUnit | @Test @Before |
| JPA | @Entity @Id @Column |
框架通过反射 / 字节码处理读取注解,决定:
✅ 没有注解,现代 Java 框架几乎无法工作
注解可以在不同阶段生效:
@Override)这让注解非常灵活。
注解表达的是:
“这个类是服务” “这个字段需要注入” “这个方法要事务”
而不是:
“怎么创建” “怎么查找” “怎么提交”
✅ 更符合“声明式编程”思想
Java 注解用得好,可以:
如果你愿意,我也可以:
你想看哪一个?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。