1. 基础注解(Java 内置)
注解 | 说明 |
@Override |
表示方法是重写父类的方法(编译时检查,确保方法签名正确)。 |
@Deprecated |
标记方法或类已过时,不推荐使用,调用时会有警告提示。 |
@SuppressWarnings |
抑制编译器警告,例如:@SuppressWarnings("unchecked") 。 |
@FunctionalInterface |
表示一个接口是函数式接口(只能有一个抽象方法,JDK 8+)。 |
2. Lombok 注解(简化代码开发)
注解 | 说明 |
@Getter |
自动生成 getter 方法。 |
@Setter |
自动生成 setter 方法。 |
@ToString |
自动生成 toString 方法。 |
@EqualsAndHashCode |
自动生成 equals 和 hashCode 方法。 |
@NoArgsConstructor |
自动生成无参构造方法。 |
@AllArgsConstructor |
自动生成包含所有字段的构造方法。 |
@Builder |
提供 建造者模式 的实现。 |
@Slf4j |
自动引入日志框架 SLF4J 的 log 对象。 |
3. Spring 注解(用于开发 Web 应用和服务)
3.1 Spring 核心注解
注解 | 说明 |
@Component |
将类注册为 Spring 的 Bean,供容器管理。 |
@Service |
标记服务层的类,功能类似 @Component ,语义更明确。 |
@Repository |
标记持久层(数据库访问层)的类,提供数据库操作功能。 |
@Controller |
标记控制器,用于处理用户请求(MVC 模式的前端控制层)。 |
@RestController |
等同于 @Controller + @ResponseBody ,直接返回 JSON 格式响应。 |
@Autowired |
自动注入 Spring 容器中的 Bean(根据类型注入)。 |
@Qualifier |
用于指定注入 Bean 的名称(当有多个同类型 Bean 时)。 |
@Value |
从配置文件加载单个值,例如:@Value("${my.property}") 。 |
@Configuration |
标记配置类,代替传统的 XML 配置。 |
@Bean |
在配置类中声明一个 Bean。 |
3.2 Spring MVC 和 REST 注解
注解 | 说明 |
@GetMapping |
处理 HTTP GET 请求。 |
@PostMapping |
处理 HTTP POST 请求。 |
@RequestMapping |
通用的请求映射注解,可指定路径和 HTTP 方法。 |
@RequestParam |
获取请求参数,例如:@RequestParam("id") int id 。 |
@PathVariable |
获取 URL 路径中的变量,例如:@GetMapping("/user/{id}") 。 |
@RequestBody |
将请求体(JSON)映射为对象,用于接收客户端数据。 |
@ResponseBody |
将返回值直接写入 HTTP 响应体,通常用于返回 JSON 数据。 |
3.3 Spring 事务管理
注解 | 说明 |
@Transactional |
声明式事务管理,方法中的数据库操作要么全部成功,要么全部回滚。 |
3.4 Spring 异步处理
注解 | 说明 |
@Async |
声明方法为异步执行,通常用于耗时任务。 |
4. JPA 注解(数据持久化相关)
注解 | 说明 |
@Entity |
标记类为 JPA 实体类,对应数据库中的表。 |
@Table |
指定表名及其他表属性,例如:@Table(name = "user_table") 。 |
@Id |
标记主键字段。 |
@GeneratedValue |
标记主键生成策略,例如:@GeneratedValue(strategy = GenerationType.IDENTITY) 。 |
@Column |
指定字段对应数据库列的信息,例如列名、是否为空等。 |
@OneToMany / @ManyToOne / @OneToOne / @ManyToMany |
描述实体之间的关系。 |
5. 其他常用注解
注解 | 说明 |
@Test |
用于单元测试(JUnit 框架)。 |
@Before / @After |
单元测试中的初始化和清理工作(JUnit 框架)。 |
@Data |
Lombok 提供的注解,包含 @Getter 、@Setter 、@ToString 等功能。 |
@Slf4j |
自动引入 SLF4J 日志对象,提供日志记录功能。 |
@Builder |
提供建造者模式的支持,方便构建对象。 |
总结
- 内置注解:帮助开发者检查代码和优化。
- Lombok 注解:简化 Java 的样板代码(getter/setter/toString 等)。
- Spring 注解:实现依赖注入、声明式事务管理、RESTful 服务等。
- JPA 注解:帮助实现 ORM(对象关系映射)。
通过这些注解,Java 开发变得更加高效、清晰且易于维护!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端