Spring Cloud - 数据访问注解:
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缓存
每个注解的设计原理、功能说明也有所不同,需要根据具体的使用场景和需求进行选择和调整。