news 2026/5/11 22:10:24

Spring Cloud Context 和 Spring Cloud Commons 包详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Cloud Context 和 Spring Cloud Commons 包详解

Spring Cloud Context 和 Spring Cloud Commons 2.0.2 对应的Spring Cloud 整体版本是 Finchley.SR1

版本对应关系

Spring Cloud ContextSpring Cloud CommonsSpring Cloud 版本Spring Boot 兼容版本
2.0.22.0.2Finchley.SR12.0.x
2.1.02.1.0Greenwich.SR12.1.x
2.2.02.2.0Hoxton.SR12.2.x

Finchley 是 Spring Cloud 的第二个主要发布系列(2018年发布)。


Spring Cloud Context 介绍

主要功能

Spring Cloud Context 为 Spring Cloud 应用提供了应用上下文层次结构配置刷新机制

核心特性:

  1. Bootstrap Context(引导上下文)

    • 创建一个父级应用上下文,用于加载外部配置
    • 先于主应用上下文启动
    • 从配置中心(如Config Server)加载配置
  2. @RefreshScope

    • 支持配置的动态刷新
    • 无需重启应用即可更新配置值
  3. Environment端点

    • /actuator/env端点用于查看和修改环境属性
    • /actuator/refresh端点触发配置刷新
  4. 加密解密支持

    • 提供对称/非对称加密工具
    • 支持配置属性的加密存储

使用示例:

@SpringBootApplication@RefreshScope// 支持配置动态刷新publicclassApplication{@Value("${custom.property}")privateStringcustomProperty;// 配置刷新时,@RefreshScope的bean会被重新创建}

Spring Cloud Commons 介绍

主要功能

Spring Cloud Commons 提供了抽象层和通用工具,用于构建分布式系统的公共模式。

核心模块:

  1. 服务发现抽象

    • DiscoveryClient接口
    • 服务注册/发现的通用API
    • 支持多种注册中心(Eureka, Consul, Nacos等)
  2. 负载均衡

    • LoadBalancerClient接口
    • Ribbon 集成(在Finchley中)
  3. 配置客户端

    • ConfigClient相关支持
    • 从配置服务器获取配置
  4. RestTemplate 增强

    • @LoadBalanced注解
    • 支持服务名调用
  5. 服务调用

    • Feign 客户端的支持(通过spring-cloud-openfeign)

使用示例:

// 1. 服务发现@AutowiredprivateDiscoveryClientdiscoveryClient;publicList<ServiceInstance>getInstances(StringserviceId){returndiscoveryClient.getInstances(serviceId);}// 2. 负载均衡的RestTemplate@Bean@LoadBalancedpublicRestTemplaterestTemplate(){returnnewRestTemplate();}// 使用服务名调用Stringresult=restTemplate.getForObject("http://service-provider/api/hello",String.class);

两个包的关系

提供抽象接口

实现接口

使用工具类

Spring Cloud Commons

Spring Cloud Context

具体实现

Eureka

Consul

Config Server

  • Commons:定义标准和抽象(接口、注解)
  • Context:提供运行时支持和增强功能
  • 两者协同工作,共同构建Spring Cloud的基础设施

实际开发中的依赖

通常不需要直接引入这两个包,而是通过Spring Cloud Starter引入:

<!-- Finchley.SR1 的典型依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter</artifactId><version>2.0.2.RELEASE</version></dependency><!-- 或具体功能starter --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

这两个包是Spring Cloud微服务架构的基础核心,几乎所有Spring Cloud功能都依赖于它们。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 1:28:24

复旦团队发现:AI教学助手能力需精准匹配学生水平

这项由复旦大学、上海人工智能实验室等多个机构联合完成的研究于2026年1月发表在arXiv预印本平台&#xff0c;论文编号为arXiv:2601.14249v1。有兴趣深入了解的读者可以通过该编号查询完整论文。在人工智能快速发展的今天&#xff0c;我们经常听到这样一个说法&#xff1a;要想…

作者头像 李华
网站建设 2026/5/6 19:39:44

施密特触发器在PLC输入电路中的作用解析:通俗解释

以下是对您提供的技术博文进行 深度润色与专业重构后的版本 。我以一名深耕工业控制领域十余年的嵌入式系统工程师兼PLC课程讲师的身份,重新梳理全文逻辑、强化工程语境、剔除AI腔调,并注入大量一线调试经验与设计权衡思考。文章已完全去除模板化结构(如“引言/总结/展望”…

作者头像 李华