使用 Spring Cloud 和 Netflix Archaius

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

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

背景

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 集成。