0

我确实在我的 Spring Boot 应用程序中使用了配置文件。在我的 application.properties 我有这 3 个条目:

spring.profiles.active=prod
key1=demo. ...
key1=prod. ...

目前,我必须根据它是演示版还是生产版来取消注释该行。有没有更好的方法使用 Spring Boot 的配置文件来做到这一点?

4

2 回答 2

0

是的,您可以创建带有配置文件名称后缀的属性文件,并在那里转储配置文件的特定属性。

例如,

在你的application-prod.properties这个会去key1=prod. ... 在你的application-demo.properties这个会去key1=demo. ...

并在启动服务器时传递此 java 参数-Dspring.profiles.active=<profilename>或设置 env 变量SPRING_PROFILES_ACTIVE=<profile_name>

于 2018-09-24T10:35:07.713 回答
0

这是如何实现的:

  1. 使用单个 application.properties 并具有以下格式的值:

    redis.host=${REDIS_HOST}
    redis.port=${REDIS_PORT}
    
  2. 现在为 dev、staging 和 prod 环境使用不同的 .yml 文件,其中每个文件都有与特定环境相关的值。例如 dev.yml、staging.yml、prod.yml:

    // dev.yml
    REDIS_HOST=localhost
    REDIS_PORT=6379
    
    // staging.yml
    REDIS_HOST=staging-url
    REDIS_PORT=6576
    
    //prod.yml
    REDIS_HOST=produrl
    REDIS_PORT=5678
    
  3. 现在,使用为不同环境传递的配置文件参数运行应用程序:

    -Dspring.profiles.active=dev
    
于 2018-09-24T10:47:45.257 回答