springboot 常用注解

下面给你一份Spring Boot 常用注解全景清单 ,按使用场景分类 ,非常适合日常开发 + 面试复习


一、启动 & 核心注解(必须掌握)

✅ @SpringBootApplication

java 复制代码
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

等价于:

java 复制代码
@Configuration
@EnableAutoConfiguration
@ComponentScan
注解 作用
@Configuration 标识配置类
@EnableAutoConfiguration 开启自动配置
@ComponentScan 扫描 Bean

📌 Spring Boot 应用的入口注解


二、Bean 定义 & 注入

1️⃣ 定义 Bean

注解 说明
@Component 通用组件
@Service 业务层
@Repository DAO 层(支持异常转换)
@Controller MVC 控制器
@RestController REST 接口(= @Controller + @ResponseBody)
java 复制代码
@RestController
@RequestMapping("/user")
public class UserController {}

2️⃣ Bean 注入(DI)

✅ @Autowired(Spring 原生)

java 复制代码
@Autowired
private UserService userService;

✅ @Qualifier(解决多个实现)

java 复制代码
@Autowired
@Qualifier("userServiceImpl")
private UserService userService;

✅ @Resource(JDK 自带,推荐)

java 复制代码
@Resource
private UserService userService;

📌 区别:

注解 来源 默认按
@Autowired Spring 类型
@Resource JDK 名称

三、配置相关注解(非常高频)

1️⃣ 配置文件绑定

@Value

java 复制代码
@Value("${server.port}")
private int port;

@ConfigurationProperties(强烈推荐)

java 复制代码
@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class OssConfig {
    private String endpoint;
    private String accessKey;
}

2️⃣ 引入配置

注解 作用
@PropertySource 加载自定义 properties
@ImportResource 引入 XML 配置
@Import 导入配置类

四、Web / MVC 注解

1️⃣ 请求映射

注解 说明
@RequestMapping 通用
@GetMapping GET
@PostMapping POST
@PutMapping PUT
@DeleteMapping DELETE
java 复制代码
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {}

2️⃣ 参数绑定

注解 作用
@PathVariable URL 参数
@RequestParam 请求参数
@RequestBody JSON 请求体
@RequestHeader Header
@CookieValue Cookie

3️⃣ 响应处理

注解 说明
@ResponseBody 返回 JSON
@ResponseStatus 指定 HTTP 状态码
@ExceptionHandler 局部异常处理
@ControllerAdvice 全局异常处理

五、数据库 & 事务

1️⃣ JPA / MyBatis 常用

注解 说明
@Entity JPA 实体
@Table 表名
@Id 主键
@GeneratedValue 主键生成
@Column 字段

2️⃣ 事务(非常重要)

@Transactional

java 复制代码
@Transactional(rollbackFor = Exception.class)
public void saveUser() {}

📌 常见考点:

  • 默认只对 RuntimeException 回滚
  • 同类方法调用事务失效
  • 需 public 方法

六、AOP 相关注解

注解 作用
@Aspect 切面
@Pointcut 切点
@Before 前置通知
@After 后置通知
@Around 环绕通知
@AfterReturning 返回后
@AfterThrowing 异常后
java 复制代码
@Aspect
@Component
public class LogAspect {}

七、异步 / 定时 / 缓存

1️⃣ 异步

java 复制代码
@EnableAsync
@Async
public void sendEmail() {}

2️⃣ 定时任务

java 复制代码
@EnableScheduling
@Scheduled(cron = "0 0 * * * ?")
public void task() {}

3️⃣ 缓存(高频)

注解 作用
@EnableCaching 启用缓存
@Cacheable 查询缓存
@CachePut 更新缓存
@CacheEvict 删除缓存

八、条件装配(Spring Boot 精髓)

注解 说明
@ConditionalOnClass 类存在才生效
@ConditionalOnMissingBean Bean 不存在才生效
@ConditionalOnBean Bean 存在才生效
@ConditionalOnProperty 配置存在

📌 自动配置的核心


九、测试相关

注解 作用
@SpringBootTest 启动容器测试
@WebMvcTest MVC 测试
@DataJpaTest JPA 测试
@MockBean Mock Bean

十、高频总结(速记)

✅ @SpringBootApplication = 三大注解

✅ @RestController = @Controller + @ResponseBody

✅ @Autowired 按类型,@Resource 按名称

✅ @Transactional 只对 public 方法有效

✅ @ConfigurationProperties 优于 @Value

✅ 条件注解是 Spring Boot 自动配置灵魂


相关推荐
To_OC3 小时前
手写 AI 编程 Agent 的命令执行工具:我被 child_process 坑出来的实战经验
后端·node.js·agent
向日的葵0065 小时前
langchain的Tools教程(三)
python·langchain·tools
逝水无殇5 小时前
C# 异常处理详解
开发语言·后端·c#
言乐66 小时前
Python实现可运行解密游戏游戏框架
python·游戏·小程序·游戏程序·关卡设计
YUS云生7 小时前
Python学习笔记·第31天:FastAPI入门——路由、路径参数、查询参数与请求体
笔记·python·学习
智写-AI7 小时前
真实有效的免费降英文AI工具服务商
人工智能·python
yuhuofei20218 小时前
【Python入门】了解掌握Python中函数的基本使用
python
考虑考虑8 小时前
Sentinel安装
java·后端·微服务
IT_陈寒8 小时前
SpringBoot自动配置失灵?你可能忘了这个关键注解
前端·人工智能·后端
碎碎念_4928 小时前
SpringBoot + Vue 前后端分离从 0 到 1 完整环境配置流程
vue.js·spring boot·后端