如何管理 springboot 项目的配置文件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ljzxloaf
V2EX    程序员

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

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

    如果让 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     Solana     989 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 18:41 PVG 02:41 LAX 11:41 JFK 14:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86