V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ljzxloaf
V2EX  ›  程序员

如何管理 springboot 项目的配置文件

  •  
  •   ljzxloaf · 232 天前 · 2462 次点击
    这是一个创建于 232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果让 springboot 去管理,那就要打包各个环境的配置在一个包里,让 springboot 根据一些 convention 去区分开不同的 profile ,但是这样感觉不太安全。

    如果让 maven 去管理的话,每个环境一个配置文件,但是又总是会有一些公共的配置,每次改动要改好几个文件。

    各位彦祖有啥好办法🐴

    23 条回复    2024-05-10 11:20:00 +08:00
    Vkery
        1
    Vkery  
       232 天前
    nacos?
    qinxi
        2
    qinxi  
       232 天前
    但是这样感觉不太安全. 不如说说怎么不安全?
    spring 自身的 profile 就是用来干这个的, 敏感数据用环境变量就是了.
    mango88
        3
    mango88  
       232 天前
    公共的放 application.yml
    环境特定的放 application-${spring.profiles.active}.yml
    cslive
        4
    cslive  
       232 天前   ❤️ 1
    直接配置中心,服务器设置环境变量,不同环境写入不同环境变量
    cookii
        5
    cookii  
       232 天前 via Android
    放在 k8s 里
    28Sv0ngQfIE7Yloe
        6
    28Sv0ngQfIE7Yloe  
       232 天前
    k8s configMap
    chaos93
        7
    chaos93  
       232 天前
    试试我的: http://42.192.143.114:23482/chat/ZM7TOinOY29cUTUA
    问问 AI
    vczyh
        8
    vczyh  
       232 天前
    就一个配置文件,然后注入环境变量,例如:

    data:
    redis:
    host: ${REDIS_HOST:127.0.0.1}
    username: ${REDIS_USER:default}
    password: ${REDIS_PWD:123}
    yuanxiaosong
        9
    yuanxiaosong  
       232 天前   ❤️ 2
    不使用 spring cloud/docker/k8s 管理配置
    1. 使用外部 env 文件管理:
    application.yml
    ```
    spring:
    config:
    import: optional:file:.env[.properties]
    datasource:
    url: ${DATASOURCE_URL:jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8}
    username: ${DATASOURCE_USERNAME:root}
    password: ${DATASOURCE_PASSWORD:root}
    ```

    .env
    ```
    DATASOURCE_USERNAME=test
    DATASOURCE_PASSWORD=test
    ```

    优先使用 env 中的值,如果 env 中未找到对应值,则使用 yml 中的值,根据不同环境指定不同的 env 文件;

    2. 启动时候通过启动参数配置
    java -jar xxx.jar --spring.datasource.username=test --spring.datasource.password=test
    hekouwang123
        10
    hekouwang123  
       232 天前
    我们之前用的 apollo ,挺好用的
    guozi1117
        11
    guozi1117  
       232 天前
    apollo 或者 nacos
    nekoneko
        12
    nekoneko  
       232 天前
    配置中心那么多, 随便选一个
    cheng6563
        13
    cheng6563  
       232 天前
    SpringBoot 天生自带配置文件合并,还要怎么管,生产服务器上放一份生产配置完事。
    xliao
        14
    xliao  
       232 天前   ❤️ 1
    源码仍然采用 application.yml + application-${spring.profiles.active}.yml 方式,
    打包的时候根据 profile 忽略掉其他环境的配置,不同环境 jar 就只包含公共 yml+自身的 yml 了
    inhzus
        15
    inhzus  
       232 天前
    @xliao #14 +1 方便又好用
    ufan0
        16
    ufan0  
       232 天前
    @chaos93 #7 请问接入模型是哪个?价格如何。

    该回复速度实在是不错。
    chaos93
        17
    chaos93  
       232 天前
    @ufan0 你要给我付费么
    paynezhuang
        18
    paynezhuang  
       232 天前
    @xliao 来破配置参考参考
    azhong123
        19
    azhong123  
       232 天前
    @chaos93 很好用,非常感谢
    chaos93
        20
    chaos93  
       232 天前
    @azhong123 能不能来点钱
    lustime
        21
    lustime  
       231 天前
    @chaos93 dify?
    ufan0
        22
    ufan0  
       231 天前
    @chaos93 #17 一般市场价都能接受。怎么联系。
    hai046
        23
    hai046  
       231 天前
    了解一下微服务中配置中心,可以单独去了解配置中心 apollo/nacos 即可。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2746 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:12 · PVG 21:12 · LAX 05:12 · JFK 08:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.