引言
Spring Boot的注解体系是开发者与框架对话的“密码本”。但许多开发者仅停留在@RestController、@Autowired等基础注解的使用,对条件装配、自动配置、扩展接口等高阶注解知之甚少。本文将彻底列举Spring Boot的107个核心注解,可将本文作为 速查手册 收藏
一、IOC容器核心注解(23个)
@ComponentScan- 配置组件扫描路径@Lazy- 延迟初始化Bean@Scope- 设置Bean作用域(singleton/prototype等)@DependsOn- 指定Bean初始化顺序@Primary- 优先注入的候选Bean@Lookup- 方法级别依赖查找@AliasFor- 注解属性别名@Role- 定义Bean的角色(ROLE_APPLICATION/ROLE_SUPPORT)@Description- 添加Bean描述信息@ConditionalOnJava- 根据Java版本注册Bean@ConditionalOnResource- 资源文件存在时生效@ConditionalOnJndi- JNDI存在时生效@ConditionalOnCloudPlatform- 云平台环境检测@ConditionalOnWarDeployment- WAR部署时生效@ConditionalOnSingleCandidate- 当唯一候选时注册@ImportSelector- 动态导入配置类@ImportBeanDefinitionRegistrar- 编程式注册Bean@PropertySource- 加载外部配置文件@PropertySources- 多配置文件加载@Repeatable- 可重复注解容器@Profile- 环境隔离配置@EnableLoadTimeWeaving- 类加载期织入@EnableMBeanExport- 暴露JMX MBean
二、Web开发注解(18个)
@CookieValue- 获取Cookie值@SessionAttribute- 访问Session属性@SessionAttributes- 声明会话存储模型@MatrixVariable- 解析矩阵变量@RequestAttribute- 获取请求域属性@InitBinder- 自定义数据绑定@ExceptionHandler- 控制器异常处理@ControllerAdvice- 全局控制器增强@ModelAttribute- 模型数据绑定@ResponseBody- 返回值序列化@RequestMapping- 通用请求映射@RestControllerAdvice- REST风格异常处理@Hidden- Swagger隐藏API@Operation- OpenAPI接口描述@Parameter- 接口参数描述@ApiResponse- 响应状态码说明@Server- OpenAPI服务器配置@Tag- API分组标签
三、数据访问注解(14个)
@EntityScan- JPA实体类扫描@EnableJpaRepositories- 激活JPA仓库@Query- 自定义查询语句@Modifying- 标识更新操作@Procedure- 调用存储过程@Lock- 指定锁模式@EnableTransactionManagement- 启用声明式事务@Sql- 测试时执行SQL脚本@SqlMergeMode- 控制SQL脚本合并@DataJpaTest- JPA切片测试@DynamicUpdate- 动态生成Update语句@Access- JPA字段访问策略@ColumnTransformer- 列数据转换@TenantId- 多租户数据隔离
四、配置与属性绑定(12个)
@ConstructorBinding- 构造函数绑定配置@DurationUnit- 时间单位配置@DataSizeUnit- 数据大小单位配置@NestedConfigurationProperty- 嵌套属性绑定@ConfigurationPropertiesScan- 配置类自动扫描@DeprecatedConfigurationProperty- 标记废弃配置项@EnableConfigurationProperties- 启用指定配置类@ConfigurationPropertiesBindHandler- 自定义绑定处理器@AutoConfigureBefore- 控制自动配置顺序@AutoConfigureAfter- 定义配置依赖顺序@AutoConfigureOrder- 自动配置排序@BootstrapWith- 自定义引导程序
五、安全与权限(9个)
@EnableWebSecurity- 启用Web安全配置@PreAuthorize- 方法执行前鉴权@PostAuthorize- 方法执行后鉴权@PreFilter- 方法参数过滤@PostFilter- 返回值结果过滤@Secured- 角色权限校验@EnableGlobalMethodSecurity- 启用方法级安全@WithMockUser- 测试模拟用户@WithAnonymousUser- 测试匿名用户
六、测试与验证(11个)
@WebMvcTest- MVC切片测试@DataRedisTest- Redis测试@RestClientTest- 客户端测试@JsonTest- JSON序列化测试@TypeExcludeFilter- 类型排除过滤器@DynamicPropertySource- 动态测试属性@TestConstructor- 测试类构造器自动注入@SqlConfig- SQL脚本配置@ParameterizedTest- 参数化测试@RepeatedTest- 重复执行测试@EnabledIf- 条件启用测试
七、高级特性(15个)
@EnableAsync- 启用异步执行@EnableScheduling- 启用定时任务@EnableCaching- 启用缓存机制@EnableRetry- 启用方法重试@EnableAspectJAutoProxy- 启用AOP代理@EnableJms- 启用JMS消息队列@EnableBatchProcessing- 启用批处理@EnableCircuitBreaker- 启用熔断器@EnableDiscoveryClient- 注册服务发现@EnableFeignClients- 启用Feign客户端@EnableConfigurationProperties- 批量属性绑定@EnableEncryptableProperties- 属性加密@EnableTransactionManagement- 事务管理@EnableMBeanExport- JMX监控支持@EnableWebFlux- 响应式Web支持
八、自定义扩展(5个)
@EnableAutoConfiguration- 启用自动配置@AutoConfigureJson- 自定义JSON序列化@ConditionalOnWebApplication- Web环境条件@ConditionalOnNotWebApplication- 非Web环境条件@ConditionalOnExpression- SpEL表达式条件
结语
本文系统梳理了Spring Boot框架的107个核心注解,覆盖以下维度:
- IOC容器(23个)
- Web开发(18个)
- 数据访问(14个)
- 安全体系(9个)
- 测试验证(11个)
- 高级特性(15个)
- 扩展机制(5个)
建议开发者:
- 将本文作为速查手册收藏
- 配合Spring官方文档理解源码实现
- 通过IDEA的
Ctrl+Click跳转查看注解源码 - 在开发中逐步尝试冷门注解的实战应用
知识拓展:Spring Boot 3.0新增的@AutoConfiguration注解,标志着自动配置机制的进一步标准化,值得深入学习。