跳至主要內容

Spring Cloud 常用注解

bsfc.tech大约 2 分钟框架Spring Cloud

Spring Cloud 是一个基于 Spring Boot 的分布式系统开发工具集,它提供了一系列的注解来简化微服务架构中常见的模式和功能实现。以下是一些常用的 Spring Cloud 注解:

  1. @EnableDiscoveryClient

    • 用于启用服务发现客户端,通常与 Eureka、Consul 或 Zookeeper 等服务注册中心一起使用。
  2. @RibbonClient

    • 配置特定服务的 Ribbon 客户端,Ribbon 是 Netflix 提供的一个负载均衡器。
  3. @FeignClient

    • 用来定义 Feign 客户端接口,Feign 是一个声明式的 Web Service 客户端,使得编写 HTTP API 的调用变得更加简单。
  4. @HystrixCommand

    • 标记方法以启用熔断器(Circuit Breaker)模式,当远程调用失败达到一定阈值时自动跳闸,防止雪崩效应。
  5. @RefreshScope

    • 使 Bean 支持配置文件的动态刷新,适用于需要在运行时根据环境变化调整行为的组件。
  6. @LoadBalanced

    • 添加到 RestTemplate 或 WebClient 实例上,以启用其负载均衡能力。
  7. @ServiceInstanceListSupplier

    • 自定义服务实例列表供应者,可以用于扩展默认的服务发现机制。
  8. @ConfigurationProperties

    • 绑定配置属性到 JavaBean 上,支持宽松匹配和类型安全的配置注入。
  9. @Value("${property}")

    • 直接从配置文件中注入属性值,虽然这不是 Spring Cloud 特有的注解,但在微服务环境中非常常用。
  10. @Primary

    • 指定多个相同类型的 Bean 中哪个是首选的,这在有多个实现类的情况下很有用。
  11. @ConditionalOnProperty

    • 根据配置文件中的属性是否存在或具有特定值来有条件地加载 Bean。
  12. @ConditionalOnExpression

    • 使用 SpEL 表达式来决定是否应该创建某个 Bean。
  13. @ConditionalOnClass / @ConditionalOnMissingClass

    • 分别检查类路径下是否存在或不存在某个类时才创建 Bean。
  14. @ConditionalOnBean / @ConditionalOnMissingBean

    • 根据上下文中是否存在指定类型的 Bean 来决定是否创建新的 Bean。
  15. @EnableZuulProxy / @EnableZuulServer

    • 启用 Zuul 作为 API Gateway,分别代表代理模式和服务端模式。

这些只是 Spring Cloud 提供的一部分注解,每个模块还可能包含更多专门针对该模块特性的注解。随着 Spring Cloud 生态系统的不断进化,可能会引入新的注解或者对现有注解进行改进。如果你正在寻找更具体的注解信息,请指明你感兴趣的 Spring Cloud 组件(例如 Spring Cloud Netflix, Spring Cloud Alibaba 等),我可以提供更加详细的指导。