当前位置: 首页 > news >正文

SpringBoot 常用注解大全

SpringBoot 常用注解大全

一、核心注解

1. 启动类注解

  • @SpringBootApplication:组合注解,包含以下三个注解
    • @Configuration:标记该类为配置类
    • @EnableAutoConfiguration:启用自动配置
    • @ComponentScan:组件扫描

2. 配置相关

  • @Configuration:声明一个类为配置类
  • @Bean:声明一个方法返回的对象作为Spring管理的Bean
  • @PropertySource:指定配置文件位置
  • @ConfigurationProperties:将配置文件属性绑定到Bean
  • @Value:注入单个属性值

二、Web开发注解

1. 控制器相关

  • @RestController:组合注解,包含@Controller@ResponseBody
  • @Controller:标记类为控制器
  • @RequestMapping:映射请求路径
  • @GetMapping/@PostMapping/@PutMapping/@DeleteMapping:特定HTTP方法映射
  • @PathVariable:获取URL路径中的变量
  • @RequestParam:获取请求参数
  • @RequestBody:获取请求体内容并转换为对象
  • @ResponseBody:将方法返回值作为响应体

2. 请求/响应处理

  • @RequestHeader:获取请求头信息
  • @CookieValue:获取Cookie值
  • @ModelAttribute:绑定请求参数到模型对象
  • @CrossOrigin:解决跨域问题

三、数据访问注解

1. JPA相关

  • @Entity:标记为JPA实体类
  • @Table:指定实体对应的表名
  • @Id:标记主键字段
  • @GeneratedValue:指定主键生成策略
  • @Column:指定字段与列的映射
  • @OneToMany/@ManyToOne/@ManyToMany/@OneToOne:关联关系
  • @Repository:标记数据访问组件

2. MyBatis相关

  • @Mapper:标记MyBatis的Mapper接口
  • @Insert/@Select/@Update/@Delete:SQL操作注解

四、依赖注入相关

  • @Autowired:自动注入依赖(按类型)
  • @Qualifier:按名称指定注入的Bean
  • @Resource:JDK提供的依赖注入(可按名称)
  • @Inject:JSR-330标准注入注解

五、事务管理

  • @Transactional:声明事务
    • propagation:传播行为
    • isolation:隔离级别
    • timeout:超时时间
    • readOnly:是否只读
    • rollbackFor/rollbackForClassName:指定回滚的异常类型
    • noRollbackFor/noRollbackForClassName:指定不回滚的异常类型

六、AOP相关

  • @Aspect:声明切面类
  • @Pointcut:定义切点表达式
  • @Before:前置通知
  • @After:后置通知
  • @AfterReturning:返回后通知
  • @AfterThrowing:异常通知
  • @Around:环绕通知

七、测试相关

  • @SpringBootTest:SpringBoot测试注解
  • @Test:标记测试方法
  • @MockBean:模拟Bean
  • @DataJpaTest:JPA测试切片
  • @WebMvcTest:Web MVC测试切片

八、定时任务

  • @EnableScheduling:启用定时任务
  • @Scheduled:声明定时任务方法
    • cron:cron表达式
    • fixedRate:固定速率执行
    • fixedDelay:固定延迟执行

九、缓存相关

  • @EnableCaching:启用缓存
  • @Cacheable:缓存方法结果
  • @CachePut:更新缓存
  • @CacheEvict:清除缓存
  • @Caching:组合多个缓存操作

十、验证相关

  • @Valid:启用参数验证
  • @Validated:分组验证
  • @NotNull:非空校验
  • @Size:大小校验
  • @Min/@Max:最小/最大值校验
  • @Pattern:正则校验
  • @Email:邮箱格式校验

十一、异步处理

  • @EnableAsync:启用异步处理
  • @Async:标记异步方法

十二、消息队列

  • @EnableRabbit:启用RabbitMQ
  • @RabbitListener:监听队列消息
  • @RabbitHandler:处理消息的方法

十三、安全相关

  • @EnableWebSecurity:启用Web安全
  • @PreAuthorize:方法执行前权限检查
  • @PostAuthorize:方法执行后权限检查
  • @Secured:角色权限检查

十四、Swagger文档

  • @Api:标记类为Swagger资源
  • @ApiOperation:接口说明
  • @ApiParam:参数说明
  • @ApiModel:模型说明
  • @ApiModelProperty:模型属性说明

十五、其他常用注解

  • @Component:通用组件注解
  • @Service:业务层组件
  • @Repository:数据访问层组件
  • @Scope:指定Bean的作用域
  • @Primary:优先注入的Bean
  • @Lazy:延迟初始化
  • @Profile:指定环境配置
  • @Conditional:条件化Bean创建

十六、组合注解

  • @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan
  • @RestController = @Controller + @ResponseBody
  • @SpringBootTest = @BootstrapWith + @ExtendWith + @TestConfiguration

相关文章:

  • 智能分析网关摄像机实时接入分析平台,如何开启周界防护智能新时代?
  • Allegro23.1新功能之将差分过孔替换成via structure操作指导
  • ArkTS中的空安全:全面解析与实践
  • 使用浏览器的Clipboard API实现前端复制copy功能
  • django.db.utils.OperationalError: (1050, “Table ‘你的表名‘ already exists“)
  • HTML基础标签
  • YOLOv12 改进有效系列目录 - 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制 - 针对多尺度、小目标、遮挡、复杂环境、噪声等问题!
  • Synopsys 逻辑综合的整体架构概览
  • 电子电子架构 --- 主机厂视角下ECU开发流程
  • 【前端】如何检查内存泄漏
  • 如何把两个视频合并成一个视频?无需视频编辑器即可搞定视频合并
  • 知识知多少——Matplotlib 库
  • QT窗口相关控件及其属性
  • 制作一款打飞机游戏23:编辑器ui
  • 【Nacos-安全与限流机制健全06 】
  • 存储新势力:助力DeepSeek一体机
  • 【专题刷题】二分查找(二)
  • 【Luogu】动态规划四
  • 2025时间序列都有哪些创新点可做——总结篇
  • 常用第三方库:flutter_boost混合开发
  • 伊朗港口爆炸已造成25人死亡,灭火行动已近尾声
  • 一季度规模以上工业企业利润由降转增,国家统计局解读
  • 读科学发展的壮丽史诗,也读普通人的传奇
  • 政治局会议:创设新的结构性货币政策工具,设立新型政策性金融工具,支持科技创新、扩大消费、稳定外贸等
  • “五一”前多地市监部门告诫经营者:对预订客房不得毁约提价
  • 青海西宁市公安局原党委委员、副局长王小华被“双开”