Spring Boot 常用注解全解析:从入门到实战,一看就懂
在 Spring Boot 开发中注解是简化配置、提升效率的核心。很多同学虽然天天用但对每个注解的作用、适用场景、搭配方式总是模棱两可导致项目里经常出现配置不生效、Bean 注入失败、接口路径错误等问题。这篇文章把 Spring Boot 最常用、面试最爱问的注解按场景分类、用通俗语言讲透看完就能直接用在项目里。一、启动与核心配置注解1. SpringBootApplication作用Spring Boot 项目启动类的标配注解是一个组合注解。包含ConfigurationEnableAutoConfigurationComponentScan用法SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }2. Configuration作用标记当前类为配置类等价于 Spring 传统 XML 配置文件。特点被 Spring 扫描可在内部定义 Bean。3. EnableAutoConfiguration作用开启 Spring Boot自动配置。Spring 会根据引入的 Jar 包自动配置数据源、Redis、MQ 等 Bean。排除不需要的自动配置EnableAutoConfiguration(exclude {DataSourceAutoConfiguration.class})4. ComponentScan作用开启组件扫描自动扫描指定包下的 Controller、Service、Component 等并注册为 Bean。默认规则不写路径时扫描启动类所在包及子包。二、Bean 定义与注入注解5. Component作用通用组件标记归 Spring 管理。适用不好归类为 Controller/Service/Dao 的通用工具类。6. Service作用标记业务逻辑层组件。语义化功能同 Component只是分层更清晰。7. Repository作用标记数据访问层DAO组件。额外能力自动进行数据库异常转译。8. Bean作用方法级别注解将方法返回对象注册为 Spring 容器中的 Bean。等价XML 中的bean。用法Configuration public class BeanConfig { Bean public RestTemplate restTemplate() { return new RestTemplate(); } }9. Autowired作用按类型自动注入Bean。常用Autowired(required false) // 允许为 null private UserService userService;10. Qualifier作用同类型多个 Bean 时按名称指定注入。Autowired Qualifier(userServiceImplV1) private UserService userService;11. Resource作用默认按名称注入也可指定类型。来源Java EE 标准不是 Spring 特有。12. Value作用从配置文件application.yml注入值。Value(${server.port}) private Integer port;三、Controller 与接口注解13. Controller作用标记控制层返回页面或视图。14. RestController作用Controller ResponseBody合体。特点所有接口直接返回 JSON/字符串不走视图解析。15. RequestMapping作用URL 路由映射可加在类或方法上。常用属性value路径methodGET/POST/PUT/DELETEproduces指定返回类型RequestMapping(value /user, method RequestMethod.GET)16. GetMapping / PostMapping / PutMapping / DeleteMapping作用简化版请求映射语义更清晰。GetMapping(/user/{id})17. RequestParam作用获取请求参数?keyvalue。public String getUser(RequestParam Long id)18. PathVariable作用获取URL 路径变量/user/{id}。GetMapping(/user/{id}) public User getUser(PathVariable Long id)19. ResponseBody作用方法返回值直接写入 HTTP 响应体返回 JSON/字符串。降重鸟技术团队编写 降重鸟jiangchongniao.com四、配置导入与扩展注解20. Import作用导入其他配置类合并多个配置。Import(OtherConfig.class)21. ImportResource作用导入XML 配置文件。ImportResource(classpath:spring-context.xml)五、JPA / 数据库实体注解22. Entity作用标记为数据库实体类。23. Table作用指定映射的表名。Entity Table(name t_user) public class User {}24. Id作用标记主键字段。25. GeneratedValue作用指定主键生成策略自增、序列、UUID 等。26. Column作用指定字段映射的列名、长度、是否为空等。27. Transient作用标明该字段不映射数据库列。28. OneToOne / OneToMany / ManyToOne作用表关系映射。OneToOne一对一OneToMany一对多ManyToOne多对一29. JoinColumn作用指定外键列。六、全局异常处理注解30. ControllerAdvice作用全局异常统一处理包含 Component会被扫描。31. ExceptionHandler作用捕获指定异常统一返回结果。ControllerAdvice public class GlobalExceptionHandler { ExceptionHandler(Exception.class) ResponseBody public Result handle(Exception e) { return Result.fail(e.getMessage()); } }七、序列化/JSON 注解32. JsonIgnore作用JSON 序列化时忽略该字段。33. JsonBackReference作用解决父子对象嵌套循环引用问题。八、快速总结面试/开发速记启动SpringBootApplication配置Configuration、Bean注入Autowired、Qualifier、Resource分层Controller、Service、Repository、Component接口RestController、GetMapping、RequestParam、PathVariable实体Entity、Id、Column、Transient全局异常ControllerAdviceExceptionHandler结尾Spring Boot 注解的核心就是约定大于配置。把这些注解的作用、场景记清楚能大幅减少配置错误让代码更简洁、更规范。日常开发优先使用语义化注解如 Service、GetMapping可读性和维护性会好很多。