🚀 Spring Boot 常见注解全解指南

🔖 一、核心类注解(启动类)

注解

作用

常见应用

@SpringBootApplication

综合注解,包含 @SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan

标记主启动类,自动扫描组件和配置

java

复制代码

@SpringBootApplication

public class MyApp {

public static void main(String[] args) {

SpringApplication.run(MyApp.class, args);

}

}

🧠 面试延伸:为什么推荐使用 @SpringBootApplication 而不是单独写三个注解?

👉 统一、简洁,且 SpringBoot 会自动做配置加载与组件扫描,简化开发。

🧱 二、组件类注解(用于创建 Bean)

注解

作用

使用场景

@Component

表示该类是一个组件,交给 Spring 容器管理

工具类、通用组件

@Service

表示业务逻辑层组件

Service 层

@Repository

表示数据访问层组件(DAO)

MyBatis / JPA 中的 Mapper

@Controller

表示控制器组件(返回视图)

用于 Web 页面跳转

@RestController

等同于 @Controller + @ResponseBody,返回 JSON 数据

RESTful 接口开发

🔗 三、依赖注入注解(IOC / DI)

注解

作用

注意事项

@Autowired

按类型自动注入 Bean

推荐用在构造器注入上

@Qualifier("beanName")

指定注入 Bean 名称,解决多个实现类冲突

与 @Autowired 联用

@Resource

JSR-250 注解,按名称注入(支持回退按类型)

与 @Autowired 类似但更明确

java

复制代码

@Autowired

private UserService userService; // 自动注入

🌐 四、Web 与请求相关注解(Spring MVC)

注解

作用

使用场景

@RequestMapping

映射请求路径(支持 GET/POST 等)

通用接口路径映射

@GetMapping / @PostMapping

映射 GET / POST 请求

常用于 REST API

@PathVariable

获取 URL 中的路径参数

/user/{id}

@RequestParam

获取请求参数

/search?key=value

@RequestBody

将请求体 JSON 映射为 Java 对象

接收 POST 请求的 JSON 数据

@ResponseBody

将方法返回值直接写入响应体(通常返回 JSON)

API 接口开发

java

复制代码

@RestController

@RequestMapping("/user")

public class UserController {

@GetMapping("/{id}")

public User getUser(@PathVariable Long id) {

return userService.getById(id);

}

}

📦 五、配置与属性注解

注解

作用

常见用途

@Value("${key}")

注入配置文件中的单个属性

application.yml 中读取配置

@Configuration

声明配置类,等同于 XML 配置

Java 配置方式

@ConfigurationProperties

将配置文件中一组属性映射到一个 Bean 上

推荐用于绑定复杂配置结构

@EnableConfigurationProperties

启用 @ConfigurationProperties 注解的类

通常配合使用

🔐 六、其他常用注解

注解

功能

场景

@EnableAutoConfiguration

启用 Spring Boot 自动配置功能(包含在 @SpringBootApplication 中)

框架自动装配

@ConditionalOnMissingBean

当容器中不存在某个 Bean 时再创建

自定义默认配置

@Bean

手动注册一个 Bean 到容器中

第三方类库注册

@Profile("dev")

只在特定 profile 环境下加载该类

多环境配置

📌 图示:Spring Boot 注解分类结构(Mermaid)

✅ 总结:面试高频问法

问题

建议思路

@SpringBootApplication 包含了哪些注解?

说明其等同于三个注解:@ComponentScan, @EnableAutoConfiguration, @SpringBootConfiguration

如何使用 @ConfigurationProperties?

创建类绑定配置,使用 @EnableConfigurationProperties 激活

@RestController 和 @Controller 的区别?

前者自动加了 @ResponseBody,常用于 REST 接口返回 JSON

注入 Bean 时 @Autowired 和 @Resource 有啥区别?

前者按类型注入,后者默认按名称,建议构造方法注入提升可测试性

top
Copyright © 2088 世界杯四强_世界杯裁判 - tylwn.com All Rights Reserved.
友情链接