Spring Cloud框架提供了众多注解和组合注解,用于简化和加速开发过程。这些注解可以轻松使用各种分布式组件,并提高分布式应用程序的可靠性、可扩展性和容错性。开发者可以根据需要选择适当的注解和组合注解,以构建高效、稳定的分布式应用程序。
-
服务注册与发现注解:
- @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缓存
每个注解的设计原理、功能说明也有所不同,需要根据具体的使用场景和需求进行选择和调整。