• 各位大神是怎么管理springboot项目的配置文件的?
  • 发布于 1周前
  • 66 热度
    6 评论
如果让 springboot 去管理,那就要打包各个环境的配置在一个包里,让 springboot 根据一些 convention 去区分开不同的 profile ,但是这样感觉不太安全。如果让 maven 去管理的话,每个环境一个配置文件,但是又总是会有一些公共的配置,每次改动要改好几个文件。各位大神都是怎么做的?
用户评论
  • 耀国
  • 源码仍然采用 application.yml + application-${spring.profiles.active}.yml 方式,
    打包的时候根据 profile 忽略掉其他环境的配置,不同环境 jar 就只包含公共 yml+自身的 yml 了。
  • 2024/5/9 16:58:00 [ 0 ] [ 0 ] 回复
  • Spring
  • 不使用 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

  • 2024/5/9 16:41:00 [ 0 ] [ 0 ] 回复
  • 烂好人i
  • 就一个配置文件,然后注入环境变量,例如:
    data:
    redis:
    host: ${REDIS_HOST:127.0.0.1}
    username: ${REDIS_USER:default}
    password: ${REDIS_PWD:123}

  • 2024/5/9 16:25:00 [ 0 ] [ 0 ] 回复