Java 面试知识整理(四):Spring Boot 注解大全
控制器层(Controller Layer)
| 注解 | 用途 | 代码示例 |
|---|---|---|
@RestController | 定义 REST API 控制器,返回 JSON | @RestController public class UserController {} |
@RequestMapping | 定义请求路径 | @RequestMapping("/api/users") |
@GetMapping | GET 请求 | @GetMapping("/{id}") |
@PostMapping | POST 请求 | @PostMapping |
@PutMapping | PUT 请求 | @PutMapping |
@DeleteMapping | DELETE 请求 | @DeleteMapping("/{id}") |
@RequestParam | 接收 URL 参数 | @RequestParam Long id |
@PathVariable | 接收路径参数 | @PathVariable Long id |
@RequestBody | 接收 JSON 请求体 | @RequestBody User user |
业务层(Service Layer)
| 注解 | 用途 |
|---|---|
@Service | 标记为 Service 层 Bean |
@Transactional | 声明式事务管理 |
持久层(DAO Layer)
| 注解 | 用途 |
|---|---|
@Repository | 标记为 DAO 层 Bean |
@Mapper | MyBatis 的 Mapper 接口 |
通用注解
| 注解 | 用途 |
|---|---|
@Component | 通用 Bean,不属于 Controller/Service/Repository 的用这个 |
@Autowired | 依赖注入 |
@Value | 读取配置文件的值 |
@Configuration | 标记为配置类 |
@Bean | 在配置类中声明 Bean |
AOP 注解
| 注解 | 用途 |
|---|---|
@Aspect | 定义切面类 |
@Before | 前置通知 |
@After | 后置通知 |
@Around | 环绕通知 |
@Pointcut | 定义切点 |
Bean 生命周期注解
| 注解 | 用途 |
|---|---|
@PostConstruct | Bean 初始化完成后执行 |
@PreDestroy | Bean 销毁前执行 |
其他常用注解
| 注解 | 用途 |
|---|---|
@SpringBootApplication | Spring Boot 启动类 |
@ConfigurationProperties | 批量读取配置 |
@Slf4j | Lombok 日志注解 |
@Data | Lombok,自动生成 getter/setter |
@Valid / @Validated | 参数校验 |