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


相关推荐
tachibana23 分钟前
Go 语言里的 Context 是什么?
开发语言·后端·golang·go·语言
曲径海盗40 分钟前
【Python 学习第 32 天】字符串基础
python·学习笔记·编程入门
鶴哥只手遮天42 分钟前
Spring Framework 7.0.9 深度剖析-05-配置元数据解析:XML、注解与 JavaConfig
java·后端·开源
鶴哥只手遮天1 小时前
Spring Framework 7.0.9 深度剖析-16-异步与调度
java·后端·开源
高频因子挖掘机1 小时前
500只股票 × 多年日线:数据获取与本地存储如何分工?
后端·github·api
田里的水稻1 小时前
PyTorch_torchvision---数据集下载\TensorBoard可视化
人工智能·pytorch·python·深度学习·机器学习
张立立1 小时前
取名不想只靠翻字典?我做了个诗词取名工具,还能分析三才五格
后端
十年Java程序媛1 小时前
Java 多线程基础与锁机制|进程线程、synchronized、volatile、Lock 面试全梳理
java·spring boot·面试
弈栈录1 小时前
大模型服务抽象:兼容 OpenAI、通义千问与本地模型
java·后端·架构
程序员正茂1 小时前
Win11使用自定义训练集训练ncnn模型
python·yolo·图像识别·移动端·ncnn