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


相关推荐
大数据魔法师4 小时前
Streamlit(二十三)- 教程(二)- 动态导航
python·web
红尘散仙7 小时前
我把终端小说阅读器接上了 AI Agent:TRNovel 现在能用 skill 生成书源了
人工智能·后端·rust
心中有国也有家7 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
来杯@Java7 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
卷毛的技术笔记8 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥8 小时前
匿名函数 lambda + 高阶函数
java·python·算法
vb2008118 小时前
FastAPI APIRouter
开发语言·python
会编程的土豆8 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
adrninistrat0r8 小时前
Java调用链MCP分析工具
java·python·ai编程
喵个咪9 小时前
GoWind Toolkit Go后端代码生成 完整全流程实战
后端·go·orm