ITPub博客

首页 > 人工智能 > 人工智能 > Spring & SpringBoot 全套核心注解详解(分类最全版)

Spring & SpringBoot 全套核心注解详解(分类最全版)

人工智能 作者:丸喵喵 时间:2026-09-20 17:21:59 0 删除 编辑

前言

Spring 和 SpringBoot 的核心就是 注解开发。SpringBoot 简化了 Spring 繁琐的配置,大量使用自动化注解。本文将所有注解分为: 启动注解、Web注解、Bean注解、依赖注入注解、配置注解、事务注解、AOP注解、全局注解八大类,从零学通透。

图片


一、核心启动注解(SpringBoot 专属)

1. @SpringBootApplication

SpringBoot 启动类唯一核心注解,三合一组合注解:
@Configuration:标识当前类是配置类
@EnableAutoConfiguration:开启自动配置
@ComponentScan:自动扫描当前包及子包所有组件
作用:一键启动项目、自动加载配置、自动扫描Bean。

2. @EnableAutoConfiguration

开启 SpringBoot 自动装配,根据依赖包自动配置容器、web、数据源等。

3. @Configuration

标识当前类为 配置类,可以使用 @Bean 注册组件。


二、Web 层注解(Controller 接口开发)

1. @RestController

@Controller + @ResponseBody 合体
作用:类中所有方法返回值自动转为 JSON 数据,用于写接口。

2. @Controller

标识控制器,用于页面跳转(前后端不分离)。

3. @RequestMapping / @GetMapping / @PostMapping

@RequestMapping:通用请求路径
@GetMapping:只接收 GET 请求
@PostMapping:只接收 POST 请求

4. @PathVariable

路径参数获取:/user/{id}

5. @RequestParam

获取普通参数:/user?name=xxx

6. @RequestBody

接收前端 JSON 格式请求体数据。

7. @CrossOrigin

解决前后端跨域问题。


三、Bean 注册注解(将类交给 Spring 管理)

四大通用组件注解, 功能完全一致,只是语义不同,都会将类注入Spring容器。

1. @Component

通用组件,任意普通类交给Spring管理。

2. @Service

业务逻辑层注解(语义化)。

3. @Repository

数据持久层注解(Mapper/DAO)。

4. @Controller

控制层注解。


四、依赖注入注解(面试重点)

1. @Autowired

Spring 原生注解, 默认按类型注入。

2. @Resource

Java 原生注解, 先按名称、后按类型。

3. @Qualifier

配合 @Autowired,根据 Bean 名称精准注入,解决多实现类冲突。

4. @Value

读取配置文件 application.yml / properties 中的值。
@Value("${server.port}")


五、配置与属性绑定注解

1. @Configuration

声明配置类,可写 @Bean 方法。

2. @Bean

手动将方法返回对象注册为 Spring Bean,用于第三方组件。

3. @ConfigurationProperties

批量绑定配置文件参数到实体类。

4. @PropertySource

加载自定义 properties 配置文件。


六、事务注解(重中之重)

@Transactional

开启事务管理, 加在方法/类上。
作用:出现异常自动回滚,保证数据一致性。
支持:传播机制、隔离级别、超时时间、只读事务。


七、AOP 切面注解

1. @Aspect

标识当前类为切面类。

2. @Before

目标方法执行前触发。

3. @After

目标方法执行后触发(无论是否异常)。

4. @AfterReturning

方法 正常返回后执行。

5. @AfterThrowing

方法 抛出异常时执行。

6. @Around

环绕通知, 可控制方法执行、拦截、放行、计时,功能最强。


八、全局功能注解

1. @GlobalExceptionHandler / @RestControllerAdvice

全局统一异常处理。

2. @Slf4j

Lombok 日志注解,快速打印日志。

3. @NotNull / @NotBlank

参数校验注解,用于接口参数非空判断。

4. @EnableWebMvc

开启 Web MVC 高级配置。

5. @EnableTransactionManagement

开启事务支持。


九、面试高频注解对比总结

1. @Component、@Service、@Repository、@Controller 区别

功能完全一样,只是分层语义不同,Spring 扫描后效果一致。

2. @Autowired 和 @Resource 区别

@Autowired:Spring 注解,默认 byType
@Resource:JSR原生,默认 byName 再 byType

3. @Controller 和 @RestController

@Controller:返回页面
@RestController:返回 JSON(接口开发)

4. @Bean 和 @Component

@Component:修饰 类,自动扫描
@Bean:修饰 方法,手动注册第三方类


十、注解整体执行流程(终极总结)

程序启动 @SpringBootApplication开启扫描和自动配置
扫描所有 @Component、@Service、@Controller、@Repository装入容器
通过 @Autowired / @Resource自动装配依赖
通过 @Value、@ConfigurationProperties加载配置
通过 @Transactional控制事务
通过 AOP注解实现切面增强
Web注解接收前端请求、返回JSON


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29568843/viewspace-3183187/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-03-27

  • 博文量
    215
  • 访问量
    537367