Spring Boot 1.3.8 @Profile和属性

时间:2018-09-24 10:30:43

标签: spring-boot profile application.properties

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

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

当前,我必须取消注释该行,具体取决于它是演示版还是生产版。 使用Spring Boot的配置文件还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

是的,您可以使用配置文件名称的后缀创建属性文件,然后在其中转储配置文件特定的属性。

例如,

在您的application-prod.properties中,该{p} 在您的key1=prod. ...中,这个将进入application-demo.properties

在启动服务器时,传递此Java参数key1=demo. ...或设置环境变量-Dspring.profiles.active=<profilename>

答案 1 :(得分: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