本文整理了 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 的作用域(如 singleton 、prototype )。 |
@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 中可能有更新或废弃,请参考官方文档以获取最新信息。