本地配置文件覆盖apollo配置解决方案

由于新项目使用的是apollo,有时候本地启动服务时想要临时修改配置,比如修改端口号,但是又不想线上开发环境的配置变更,所以就有了仅修改本地配置的需求。
因此找了一圈怎么使用本地配置覆盖apollo配置,但都没有找到比较满意或者方便的解决方案。也有人提出了相关的issue: 希望实现通过指定 profile 的方式在本地覆盖远程 Apollo 配置, 回复的方案也是比较麻烦。
一怒之下,决定翻翻源码自己写个插件来实现覆盖掉apollo的配置,适用于spring boot项目。代码仓库:local-overwrite-apollo

食用方法如下

  1. 引入maven依赖

        <dependency>
            <groupId>org.eu.defe</groupId>
            <artifactId>local-overwrite-apollo</artifactId>
            <version>0.0.5</version>
        </dependency>
    
  2. 本地项目根目录下创建.env文件夹, 然后创建local.properties或者local.env文件到.env文件夹下. (local.env文件可以同时spring的宽松绑定格式,也可以支持properties格式。)

    local.env

    # 环境变量形式
    SPRING_APPLICATION_NAME=app-demo1
    # 直接的properties形式
    server.port=18080
    
  3. 从git中排除本地配置文件,避免误提交本地配置到远程。或者,你也可以配置到.git/exclude里。

    echo "/.env/" >> .gitignore
    
  4. 现在,你就可以在本地的local.env文件进行本地配置,本地配置将会比apollo的配置优先级更高。

posted @ 2025-03-17 21:27  小小记录本  阅读(283)  评论(0)    收藏  举报