本文整理了 100 个 Spring Boot 中常用的注解,并详细解释了它们的功能和用法。无论是新手还是进阶开发者,都可以通过本文快速掌握 Spring Boot 的核心注解!🚀


1. 核心注解

注解 功能描述
@SpringBootApplication 标记主启动类,包含 @Configuration@EnableAutoConfiguration@ComponentScan
@Configuration 标记一个类为配置类,定义 Bean。
@Bean 在配置类中定义 Bean 实例。
@Component 标记一个类为 Spring 组件(通用注解)。
@Service 标记一个类为服务层组件。
@Repository 标记一个类为数据访问层组件(DAO)。
@Controller 标记一个类为控制器层组件。
@RestController 标记一个类为 REST 控制器,返回 JSON 数据。
@ComponentScan 指定 Spring 扫描的包路径。
@EnableAutoConfiguration 启用 Spring Boot 的自动配置机制。

2. Web 开发注解

注解 功能描述
@RequestMapping 映射 HTTP 请求到控制器方法。
@GetMapping 映射 HTTP GET 请求。
@PostMapping 映射 HTTP POST 请求。
@PutMapping 映射 HTTP PUT 请求。
@DeleteMapping 映射 HTTP DELETE 请求。
@PatchMapping 映射 HTTP PATCH 请求。
@RequestParam 绑定 HTTP 请求参数到方法参数。
@PathVariable 绑定 URL 路径变量到方法参数。
@RequestBody 绑定 HTTP 请求体到方法参数(通常用于 JSON 数据)。
@ResponseBody 将方法返回值直接写入 HTTP 响应体。
@CrossOrigin 允许跨域请求。
@ExceptionHandler 定义全局异常处理方法。
@ControllerAdvice 定义全局控制器增强(如异常处理、数据绑定)。
@ModelAttribute 绑定请求参数到模型对象。
@SessionAttribute 绑定会话属性到方法参数。
@CookieValue 绑定 Cookie 值到方法参数。
@RequestHeader 绑定 HTTP 请求头到方法参数。
@ResponseStatus 设置 HTTP 响应状态码。
@InitBinder 初始化数据绑定器。
@Valid 启用参数校验(通常与 @RequestBody 一起使用)。

3. 数据访问注解

注解 功能描述
@Entity 标记一个类为 JPA 实体。
@Table 指定实体对应的数据库表。
@Id 标记实体类的主键字段。
@GeneratedValue 指定主键生成策略。
@Column 指定实体字段与数据库列的映射关系。
@OneToMany 定义一对多关系。
@ManyToOne 定义多对一关系。
@ManyToMany 定义多对多关系。
@JoinColumn 指定外键列。
@Transactional 声明事务管理(通常用于服务层)。
@Query 定义自定义查询(JPA)。
@Modifying 标记修改数据的查询(JPA)。
@EnableJpaRepositories 启用 JPA 仓库支持。
@EnableTransactionManagement 启用事务管理。
@DataSource 配置数据源。
@Sql 执行 SQL 脚本(测试用)。
@SqlResultSetMapping 定义 SQL 查询结果映射。
@NamedQuery 定义命名查询(JPA)。
@NamedNativeQuery 定义原生 SQL 命名查询(JPA)。
@Embeddable 标记一个类为可嵌入对象(JPA)。

4. 配置与依赖注入注解

注解 功能描述
@Autowired 自动注入依赖(按类型)。
@Qualifier 指定注入的 Bean 名称(与 @Autowired 一起使用)。
@Value 注入配置文件中的属性值。
@PropertySource 加载外部配置文件。
@ConfigurationProperties 将配置文件属性绑定到 Java 对象。
@Profile 指定配置类或 Bean 的生效环境。
@Conditional 根据条件决定是否加载 Bean。
@Primary 标记首选的 Bean(当有多个同类型 Bean 时)。
@Lazy 延迟初始化 Bean。
@Scope 指定 Bean 的作用域(如 singletonprototype)。
@Import 导入其他配置类。
@ImportResource 导入 XML 配置文件。
@DependsOn 指定 Bean 的依赖关系。
@PostConstruct 标记初始化方法(Bean 创建后执行)。
@PreDestroy 标记销毁方法(Bean 销毁前执行)。
@EnableCaching 启用缓存支持。
@Cacheable 标记方法的返回值可缓存。
@CacheEvict 清除缓存。
@CachePut 更新缓存。
@Scheduled 定义定时任务。
@Async 标记方法为异步执行。

5. AOP 与事务注解

注解 功能描述
@Aspect 标记一个类为切面。
@Pointcut 定义切点表达式。
@Before 在目标方法执行前执行。
@After 在目标方法执行后执行(无论是否抛出异常)。
@AfterReturning 在目标方法成功返回后执行。
@AfterThrowing 在目标方法抛出异常后执行。
@Around 环绕目标方法执行。
@EnableAspectJAutoProxy 启用 AspectJ 自动代理。
@Transactional 声明事务管理(支持传播行为、隔离级别等)。
@EnableTransactionManagement 启用事务管理。

6. 测试注解

注解 功能描述
@SpringBootTest 标记 Spring Boot 集成测试类。
@WebMvcTest 测试 Spring MVC 控制器。
@DataJpaTest 测试 JPA 数据访问层。
@MockBean 注入 Mock Bean。
@SpyBean 注入 Spy Bean。
@TestConfiguration 定义测试专用的配置类。
@TestPropertySource 加载测试专用的配置文件。
@BeforeEach 在每个测试方法执行前执行(JUnit 5)。
@AfterEach 在每个测试方法执行后执行(JUnit 5)。
@BeforeAll 在所有测试方法执行前执行(JUnit 5)。
@AfterAll 在所有测试方法执行后执行(JUnit 5)。

7. 其他常用注解

注解 功能描述
@EnableWebSecurity 启用 Spring Security 配置。
@PreAuthorize 在方法执行前进行权限检查。
@PostAuthorize 在方法执行后进行权限检查。
@EnableGlobalMethodSecurity 启用全局方法安全配置。
@EnableScheduling 启用定时任务支持。
@EnableAsync 启用异步方法支持。
@EnableCaching 启用缓存支持。
@EnableDiscoveryClient 启用服务发现客户端(如 Eureka)。
@EnableFeignClients 启用 Feign 客户端支持。
@EnableCircuitBreaker 启用熔断器支持(如 Hystrix)。
@EnableHystrixDashboard 启用 Hystrix 仪表盘支持。
@EnableZipkinServer 启用 Zipkin 分布式追踪服务。
@EnableAdminServer 启用 Spring Boot Admin 监控服务。
@EnableConfigurationProperties 启用配置属性绑定支持。
@EnableJms 启用 JMS 消息支持。
@EnableRabbit 启用 RabbitMQ 支持。
@EnableKafka 启用 Kafka 支持。
@EnableBatchProcessing 启用批处理支持。
@EnableIntegration 启用 Spring Integration 支持。
@EnableWebSocket 启用 WebSocket 支持。
@EnableWebFlux 启用 WebFlux 响应式编程支持。

总结

  • 本文整理了 100 个 Spring Boot 中常用的注解,涵盖了核心注解、Web 开发、数据访问、配置与依赖注入、AOP 与事务、测试等多个方面。掌握这些注解,你将能够更高效地开发 Spring Boot 应用!🚀

附注:本文基于 Spring Boot 2.x 版本编写,部分注解在 Spring Boot 3.x 中可能有更新或废弃,请参考官方文档以获取最新信息。