Spring Cloud 常用注解
大约 2 分钟框架Spring Cloud
Spring Cloud 是一个基于 Spring Boot 的分布式系统开发工具集,它提供了一系列的注解来简化微服务架构中常见的模式和功能实现。以下是一些常用的 Spring Cloud 注解:
@EnableDiscoveryClient
- 用于启用服务发现客户端,通常与 Eureka、Consul 或 Zookeeper 等服务注册中心一起使用。
@RibbonClient
- 配置特定服务的 Ribbon 客户端,Ribbon 是 Netflix 提供的一个负载均衡器。
@FeignClient
- 用来定义 Feign 客户端接口,Feign 是一个声明式的 Web Service 客户端,使得编写 HTTP API 的调用变得更加简单。
@HystrixCommand
- 标记方法以启用熔断器(Circuit Breaker)模式,当远程调用失败达到一定阈值时自动跳闸,防止雪崩效应。
@RefreshScope
- 使 Bean 支持配置文件的动态刷新,适用于需要在运行时根据环境变化调整行为的组件。
@LoadBalanced
- 添加到 RestTemplate 或 WebClient 实例上,以启用其负载均衡能力。
@ServiceInstanceListSupplier
- 自定义服务实例列表供应者,可以用于扩展默认的服务发现机制。
@ConfigurationProperties
- 绑定配置属性到 JavaBean 上,支持宽松匹配和类型安全的配置注入。
@Value("${property}")
- 直接从配置文件中注入属性值,虽然这不是 Spring Cloud 特有的注解,但在微服务环境中非常常用。
@Primary
- 指定多个相同类型的 Bean 中哪个是首选的,这在有多个实现类的情况下很有用。
@ConditionalOnProperty
- 根据配置文件中的属性是否存在或具有特定值来有条件地加载 Bean。
@ConditionalOnExpression
- 使用 SpEL 表达式来决定是否应该创建某个 Bean。
@ConditionalOnClass / @ConditionalOnMissingClass
- 分别检查类路径下是否存在或不存在某个类时才创建 Bean。
@ConditionalOnBean / @ConditionalOnMissingBean
- 根据上下文中是否存在指定类型的 Bean 来决定是否创建新的 Bean。
@EnableZuulProxy / @EnableZuulServer
- 启用 Zuul 作为 API Gateway,分别代表代理模式和服务端模式。
这些只是 Spring Cloud 提供的一部分注解,每个模块还可能包含更多专门针对该模块特性的注解。随着 Spring Cloud 生态系统的不断进化,可能会引入新的注解或者对现有注解进行改进。如果你正在寻找更具体的注解信息,请指明你感兴趣的 Spring Cloud 组件(例如 Spring Cloud Netflix, Spring Cloud Alibaba 等),我可以提供更加详细的指导。