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 自动配置灵魂


相关推荐
choumou_M8 分钟前
MySQL_1:数据库悲观锁
后端·spring·spring cloud
南城以南溫暖如初1478 分钟前
树洞交友系统架构设计与匿名聊天实战指南
java·spring boot·mysql·系统架构·vue·mybatis·交友
阿图灵9 分钟前
OpenCV 实用技巧三连:视频转图片、图片转视频、Pillow 与 OpenCV 互转
图像处理·python·opencv·计算机视觉·音视频·pillow
GlueNa2SiO310 分钟前
05-Flask表单处理与文件上传
笔记·python·学习·flask
一晌小贪欢13 分钟前
Python办公16:PDF 强力缝合——将几十个 PDF 合并为单个文档并添加页码
开发语言·python·excel·数据可视化·python办公
qq_1611112714 分钟前
深入理解Python中的Contextlib库
python·装饰器·函数·上下文管理器·contextlib
迷迭香yy18 分钟前
回测过拟合检测体系从样本内外到组合稳健性评估 IG50免费开源股票数据API接口
服务器·开发语言·数据库·人工智能·python
Zane19941223 分钟前
`ClassName()` 只是一步?拆开看 `__new__` 和 `__init__` 各自在干什么
开发语言·python
智码看视界32 分钟前
Day60-Serverless:函数计算改写传统Spring Boot
spring boot·云原生·serverless·函数计算·冷启动