Spring Cloud - 数据访问注解:

2025-10-26 13:54:32 情怀礼包

Spring Cloud框架提供了众多注解和组合注解,用于简化和加速开发过程。这些注解可以轻松使用各种分布式组件,并提高分布式应用程序的可靠性、可扩展性和容错性。开发者可以根据需要选择适当的注解和组合注解,以构建高效、稳定的分布式应用程序。本文大部分内容来源于对早期文章整理,新增Spring Cloud 近年来更新后注解及Spring Cloud Alibaba 部分注解。

扩展阅读参阅作者早期文章:Spring Cloud常用注解清单-Java快速入门教程

服务注册与发现注解:

@EnableDiscoveryClient:启用服务注册与发现

@EnableEurekaClient:启用Eureka客户端

@NacosDiscoveryClient:启用Nacos客户端

@LoadBalanced:启用负载均衡

@RibbonClient:配置Ribbon客户端

@LoadBalancerClient:开启Spring Cloud LoadBalancer功能

服务通信注解:

@EnableFeignClients:启用Feign客户端

@FeignClient:配置Feign客户端

@DubboService:声明Dubbo服务提供者

@DubboReference:声明Dubbo服务消费者

@RocketMQProducer:声明RocketMQ消息生产者

@RocketMQConsumer:声明RocketMQ消息消费者

断路器注解:

@EnableCircuitBreaker:启用断路器

@EnableHystrix:启用Hystrix断路器

@EnableHystrixDashboard:启用Hystrix Dashboard

@HystrixCommand:配置Fallback方法

@SentinelResource:熔断降级

配置管理注解:

@RefreshScope:配置刷新

@ConfigurationProperties:多数据源配置

@Primary:多数据源配置

@Qualifier:多数据源配置

@Value:获取配置文件内容

@EnableConfigServer:启用Config Server

@EnableConfigClient:启用Config Client

@ConditionalOnProperty:条件化配置

@NacosConfigurationProperties:配置Nacos Config

定时任务注解:

@Scheduled:注解方式

@EnableScheduling:启用调度支持

异步处理注解:

@Async:异步方法

@BeforeStep:Batch步骤前

@AfterStep:Batch步骤后

分布式跟踪注解:

@EnableSleuth:集成Zipkin分布式跟踪系统

批处理注解:

@EnableBatchProcessing:启动Batch批处理支持

@JobScope:Job范围内的Bean

@StepScope:Step范围内的Bean

RESTful API注解:

@RepositoryRestResource:实体类RESTful API

@PathVariable:URL路径变量

@RequestBody:HTTP请求体映射

@RequestHeader:HTTP请求头映射

@ResponseStatus:HTTP响应状态码设置

安全认证与授权注解:

@EnableResourceServer:资源服务器支持

@EnableAuthorizationServer:授权服务器支持

消息队列注解:

@EnableBinding:声明消息代理绑定

@StreamListener:配置Stream消息监听器

@KafkaListener:配置Kafka消息监听器

Swagger注解:

@EnableSwagger2:启用Swagger2

重试机制注解:

@Retryable:方法重试

事务管理注解:

@Transactional:声明式事务控制

Kafka Streams注解:

@EnableKafkaStreams:启用Kafka Streams支持

@KafkaStreamsStateStore:声明状态存储器

Spring Cloud Function注解:

@Bean:Function Bean

@FunctionScan:扫描函数定义

Spring Cloud Alibaba- Sentinel注解:

@EnableSentinel:启用Sentinel支持

@SentinelResource:定义Sentinel流控规则

@SentinelRestTemplate:定义Sentinel流控规则

@SentinelParam:配置参数限流规则

Spring Cloud Alibaba- Nacos注解:

@EnableNacosConfig:启用Nacos Config支持

@EnableNacosDiscovery:启用Nacos Discovery支持

@NacosConfigurationProperties:配置Nacos Config

@NacosGroup:分组配置

@NacosInjected:设置服务相关的元数据

@NacosPropertySource:命名空间配置

@NacosValue:命名空间配置

Spring Cloud - Feign注解:

@FeignClient:配置Feign客户端

@RequestLine:配置Feign客户端

@QueryMap:配置Feign客户端 -@FeignInterceptor:Feign拦截器

@RequestHeader:Feign拦截器

@RequestParam:Feign拦截器

Spring Cloud Alibaba - Dubbo注解:

@Service:声明Dubbo服务提供者

@Reference:声明Dubbo服务消费者

@DubboTransported:传递上下文信息

Spring Cloud Alibaba - RocketMQ注解:

@RocketMQProducer:声明RocketMQ消息生产者

@RocketMQListener:声明RocketMQ消息消费者

@RocketMQDelay:发送延迟消息

@RocketMQTransactionListener:事务消息监听器

@RocketMQOrderListener:消费顺序消息

@ConsumeOrderlyContext:消费顺序消息

@MessageOrderMode:消费顺序消息

Spring Cloud - 数据访问注解:

@MapperScan:MyBatis扫描

@SelectKey:MyBatis自动生成主键

@UpdateProvider:MyBatis动态SQL语句

@Cacheable:Redis缓存

@CachePut:Redis缓存

@CacheEvict:Redis缓存

每个注解的设计原理、功能说明也有所不同,需要根据具体的使用场景和需求进行选择和调整。