常见的 Spring Boot 注解汇总

🚀 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 有啥区别? 前者按类型注入,后者默认按名称,建议构造方法注入提升可测试性
相关推荐
xgc_java6 分钟前
在Java里把ONNX/OpenCV/FFmpeg跑稳:28篇bytedeco实战小册完整指南
java·opencv·ffmpeg
Lhappy嘻嘻9 分钟前
网络(四)|全网最细网络层原理:IP 协议、IP 地址分类、子网划分、路由转发、NAT 穿透详解
java·笔记·网络协议·计算机网络
月落归舟14 分钟前
谈谈SpringMVC底层原理
后端·springmvc
夕除18 分钟前
请求区别及app网站区别
后端
大模型码小白23 分钟前
Milvus 架构设计:从向量索引到分布式检索,AI 原生存储引擎的内部机制
java·大数据·人工智能·分布式·深度学习·milvus
稚南城才子,乌衣巷风流25 分钟前
链表(Linked List):数据结构详解与实战应用
java
霸道流氓气质25 分钟前
摄像头视频预览实现教程:从原理到落地(ZLMediaKit+ flv.js+ Spring Boot)
javascript·spring boot·音视频
NWU_LK28 分钟前
【WebFlux】第二篇 —— Project Reactor 核心数据类型
java
w1395485642228 分钟前
鸿蒙原生开发手记:徒步迹 - 图片加载与缓存优化
后端
三84432 分钟前
笔记:在同一个物理服务器上通过nginx的虚拟主机生成多个不同的web站点
java·前端·nginx