设置特定 profile 属性没有什么意思,除非这些 profile 处于活动状态。但是要如何激活一个 profile 文件呢?让一个 profile 文件处于激活状态需要做的只是将 spring.profiles.active 属性的值指定为需要激活的 profile 的名称。例如,可以像下面这样设置 application.yml 中的这个属性:
spring:
profiles:
active:
- prod
但是这可能是设定一个活动 profile 最糟糕的方式了。如果在 application.yml 中设置了激活的 profile,然后那个 profile 文件就变成了默认 profile 文件,那么就没有达到生产环境特定属性与开发环境特定属性分离的目的。相反,我推荐使用环境变量设置激活的 profile。在生产环境,像下面这样设置 SPRING_PROFILES_ACTIVE:
% export SPRING_PROFILES_ACTIVE=prod
% java -jar taco-cloud.jar --spring.profiles.active=prod
请注意 spring.profiles.active 属性名包含的是复数单词 profiles。这意味着可以指定多个活动 profiles 文件。通常,这是一个逗号分隔的列表,当它设置一个环境变量:
% export SPRING_PROFILES_ACTIVE=prod,audit,ha
spring:
profiles:
active:
- prod
- audit
- ha
同样值得注意的是,如果将 Spring 应用程序部署到 Cloud Foundry 中,一个名为 cloud 的配置文件会自动激活。如果 Cloud Foundry 是生产环境,那么需要确保在 cloud profile 文件中指定了特定于生产环境的属性。