使用 Spring Cloud 和 Netflix Archaius

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

背景

Spring Cloud 提供了创建云就绪微服务所需的所有工具。 Spring-Cloud 提供的基础结构组件之一是用于集中应用程序属性的配置服务器,但是您可能正在使用其他解决方案来管理属性。一个这样的解决方案是 Netflix Archaius ,如果你使用 Netflix Archaius,Spring-Cloud 提供了一种与之集成的巧妙方法。

与 Archaius 整合

Spring Cloud 为 Archaius 提供了一个 Spring Boot 自动配置 ,它会在应用程序找到与 Archaius 相关的库时触发。所以首先要引入 Archaius 库,这可以通过 POM 文件中的以下依赖项来完成:

查看源代码


 <dependency>
    <groupId>com.netflix.archaius</groupId>
    <artifactId>archaius-core</artifactId>
</dependency>


并不是不需要指定依赖项的版本,此信息来自父 POM 中的依赖项管理信息。

有了这个新库 Archaius Configuration,现在需要做的就是定义扩展 Apache Commons Configuration AbstractConfiguration 类的 Spring beans,这些将由 Spring Cloud 自动配置。作为示例,请考虑以下具有一个属性的 AbstractConfiguration:

查看源代码


 <dependency>
    <groupId>com.netflix.archaius</groupId>
    <artifactId>archaius-core</artifactId>
</dependency>



基本上就是这样,这个属性现在应该作为 Archaius 属性可见,并且可以通过以下方式访问:


 <dependency>
    <groupId>com.netflix.archaius</groupId>
    <artifactId>archaius-core</artifactId>
</dependency>


Spring-Cloud 中的 Archaius 集成还提供了一些更简洁的功能:

  1. Spring 托管属性作为 Archaius 属性可见
  2. Spring-Cloud提供了一个端点(/archaius),可以查看所有注册的archaius属性

结论

Spring Cloud 原生提供了编写 Cloud Ready 微服务的所有工具,但是配置集中属性的方式可能是通过 Netflix Archaius,如果是这种情况,Spring Cloud 支持这种巧妙的方式与 Archiaus 集成。

相关文章