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

Spring Boot 常用注解分类

目录

  • 1.核心注解:
  • 2.配置相关注解:
  • 3.控制器相关注解:
  • 4.数据访问相关注解:
  • 5.测试相关注解:
  • 6.条件注解:
  • 7.AOP相关注解:
  • 8.定时任务相关注解:
  • 9.消息队列相关注解:
  • 10.Spring Security相关注解:
  • 11.Swagger注解(用于API文档生成):
  • 12.Spring缓存相关注解:
  • 13.Spring定时任务相关注解:
  • 14.Spring Cloud相关注解(用于微服务开发):

1.核心注解:

@SpringBootApplication:一个复合注解,用于标识Spring Boot应用程序的入口点。它组合了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,提供了自动配置和组件扫描的功能。
@Configuration:将类标识为配置类,类似于传统的XML配置文件,用于定义Bean的创建和配置。
@EnableAutoConfiguration:启用Spring Boot的自动配置机制,根据类路径和其他条件自动配置Spring应用程序。
@ComponentScan:扫描指定包及其子包下的组件(包括@Service、@Repository、@Component和@Controller等)。

2.配置相关注解:

@Value:用于将外部属性值注入到Spring Bean中。
@ConfigurationProperties:绑定外部配置文件中的属性到Java Bean。
@PropertySource:指定外部属性文件的位置。
@Conditional:根据条件动态添加或排除Bean的装配。

3.控制器相关注解:

@RestController:组合注解,用于标识控制器类,并将其方法的返回值直接作为HTTP响应体返回。
@RequestMapping:将HTTP请求映射到处理方法上。
@GetMapping、@PostMapping等:用于简化常见的HTTP请求方法的映射。
@RequestParam:用于获取请求参数的值。
@PathVariable:用于获取URL路径变量的值。
@RequestBody:将请求体转换为Java对象。
@ResponseBody:将方法返回的对象转换为HTTP响应体。

4.数据访问相关注解:

@Entity:标识一个类作为实体类,在数据库中映射为表。
@Repository:标识一个类作为数据访问对象(DAO)。
@Autowired:自动装配依赖的Bean。
@Transactional:标识一个方法需要在事务中执行。
@Query:定义自定义的查询方法。

5.测试相关注解:

@RunWith:指定测试运行器。
@SpringBootTest:用于加载Spring应用程序的上下文,并提供测试支持。
@MockBean:模拟Bean,用于替代真实的Bean进行测试。
这些注解涵盖了Spring Boot应用程序开发的核心方面,通过合理使用这些注解,可以快速搭建和配置Spring Boot应用程序,并实现各种功能。

6.条件注解:

@ConditionalOnClass:当类路径中存在指定的类时才生效。
@ConditionalOnBean:当容器中存在指定的Bean时才生效。
@ConditionalOnProperty:当配置文件中指定的属性满足条件时才生效。
@ConditionalOnMissingBean:当容器中不存在指定的Bean时才生效。

7.AOP相关注解:

@Aspect:将一个类标识为切面。
@Pointcut:定义切点,即需要被拦截的方法。
@Before:在方法执行之前进行拦截。
@After:在方法执行之后进行拦截。
@Around:在方法执行前后进行拦截。

8.定时任务相关注解:

@Scheduled:定义定时任务的执行规则。
异步编程相关注解:

@Async:将方法标记为异步执行。
缓存相关注解:

@EnableCaching:启用缓存功能。
@Cacheable:标记方法的结果可被缓存。
这些注解可以根据具体的需求和场景选择使用,用于实现更多的功能和扩展。需要注意的是,在使用注解时要理解其作用和正确使用方式,以避免错误和不必要的麻烦。

9.消息队列相关注解:

@EnableJms:启用JMS消息队列功能。
@JmsListener:标识一个方法作为JMS消息监听器。
WebFlux相关注解(用于响应式编程):

@RestController:组合注解,用于标识控制器类,并将其方法的返回值直接作为HTTP响应体返回。
@RequestMapping:将HTTP请求映射到处理方法上。
@GetMapping、@PostMapping等:用于简化常见的HTTP请求方法的映射。
@PathVariable:用于获取URL路径变量的值。
@RequestBody:将请求体转换为Java对象。
@ResponseBody:将方法返回的对象转换为HTTP响应体。

10.Spring Security相关注解:

@EnableWebSecurity:启用Web安全性配置。
@Secured:限制方法的访问权限。
@PreAuthorize:在方法执行之前进行权限检查。
@PostAuthorize:在方法执行之后进行权限检查。

11.Swagger注解(用于API文档生成):

@Api:用于标识Controller类,生成对应API文档。
@ApiOperation:用于标识Controller类中的方法,生成对应API操作的文档。
@ApiParam:用于标识Controller方法中的参数,生成对应API参数的文档。

12.Spring缓存相关注解:

@EnableCaching:启用Spring缓存功能。
@Cacheable:标识方法的结果应该被缓存。
@CachePut:标识方法的结果应该被放入缓存。
@CacheEvict:标识方法执行后应该移除缓存中的数据。

13.Spring定时任务相关注解:

@EnableScheduling:启用Spring定时任务功能。
@Scheduled:标识方法为定时任务,并设置触发时间规则。
Spring国际化相关注解:

@EnableMessageSource:启用国际化消息资源配置。
@ConfigurationProperties:用于将属性绑定到配置类中。
Spring WebSocket相关注解:

@EnableWebSocket:启用Spring WebSocket功能。
@Controller:标识类为WebSocket控制器。
@MessageMapping:标记方法用于处理特定消息类型。

14.Spring Cloud相关注解(用于微服务开发):

@EnableDiscoveryClient:启用服务注册和发现功能。
@EnableFeignClients:启用Feign客户端功能。
@EnableCircuitBreaker:启用熔断器功能。
@EnableConfigServer:启用配置中心功能。
这些注解涵盖了不同领域的功能和特性,可以根据具体的需求选择和使用。
Spring框架提供了丰富的注解,可以更高效地进行开发、配置和集成各种功能

相关文章:

  • 开源框架Apache NiFi调研
  • NSSCTF Crypto靶场练习,21-30wp
  • Springboot入门篇
  • 自动数据增广论文笔记 | AutoAugment: Learning Augmentation Strategies from Data
  • Lua字符串(包含任意字符,如中文)任意位置截取
  • 新增模板中心和系统设置模块,支持飞书平台对接,DataEase开源数据可视化分析平台v2.1.0发布
  • Flink SQL: 高效解析 Kafka 数据并存储为 Parquet 至 HDFS
  • uni-app 微信小程序之好看的ui登录页面(四)
  • Kafka使用总结
  • 一、微前端目标、前端架构的前生今世、微前端架构优势和劣势、软件设计原则与分层
  • python socket编程9 - PyQt6界面实现UDP server/client 多客户端通讯的例子
  • docker的镜像创建 dockerfile
  • 【头歌-Python】Python第五章作业(初级)(7~16)
  • Mac安装DevEco Studio
  • 蓝牙配对、连接和删除汇总
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017年终总结、随想
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • java8 Stream Pipelines 浅析
  • Javascript Math对象和Date对象常用方法详解
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Next.js之基础概念(二)
  • Spark学习笔记之相关记录
  • SpriteKit 技巧之添加背景图片
  • SQLServer之创建数据库快照
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 试着探索高并发下的系统架构面貌
  • 思否第一天
  • 听说你叫Java(二)–Servlet请求
  • 追踪解析 FutureTask 源码
  • 函数计算新功能-----支持C#函数
  • #pragma once
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • ${ }的特别功能
  • (6)设计一个TimeMap
  • (k8s中)docker netty OOM问题记录
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (蓝桥杯每日一题)love
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (数据结构)顺序表的定义
  • (五)MySQL的备份及恢复
  • (一)SpringBoot3---尚硅谷总结
  • (原)Matlab的svmtrain和svmclassify
  • (转)详解PHP处理密码的几种方式
  • .NET Core跨平台微服务学习资源
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net和jar包windows服务部署
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .pop ----remove 删除
  • @Documented注解的作用
  • [] 与 [[]], -gt 与 > 的比较
  • [Android 数据通信] android cmwap接入点
  • [Avalon] Avalon中的Conditional Formatting.
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)