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

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

  •  
  •   ljzxloaf · 2024-05-09 10:17:16 +08:00 · 2894 次点击
    这是一个创建于 499 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    各位彦祖有啥好办法🐴

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

    data:
    redis:
    host: ${REDIS_HOST:127.0.0.1}
    username: ${REDIS_USER:default}
    password: ${REDIS_PWD:123}
    yuanxiaosong
        9
    yuanxiaosong  
       2024-05-09 11:10:56 +08:00   ❤️ 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  
       2024-05-09 11:47:31 +08:00
    我们之前用的 apollo ,挺好用的
    guozi1117
        11
    guozi1117  
       2024-05-09 13:37:21 +08:00
    apollo 或者 nacos
    nekoneko
        12
    nekoneko  
       2024-05-09 14:03:14 +08:00
    配置中心那么多, 随便选一个
    cheng6563
        13
    cheng6563  
       2024-05-09 14:06:20 +08:00
    SpringBoot 天生自带配置文件合并,还要怎么管,生产服务器上放一份生产配置完事。
    xliao
        14
    xliao  
       2024-05-09 14:13:53 +08:00   ❤️ 1
    源码仍然采用 application.yml + application-${spring.profiles.active}.yml 方式,
    打包的时候根据 profile 忽略掉其他环境的配置,不同环境 jar 就只包含公共 yml+自身的 yml 了
    inhzus
        15
    inhzus  
       2024-05-09 14:19:34 +08:00
    @xliao #14 +1 方便又好用
    ufan0
        16
    ufan0  
       2024-05-09 14:51:01 +08:00
    @chaos93 #7 请问接入模型是哪个?价格如何。

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