5.3.2 激活 profile 文件

设置特定 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

这样设置完成后,部署于那台机器的任何应用程序将会使用 prod profile,同时相应的配置属性将优先于默认配置文件中的属性。

如果使用可执行的 JAR 文件来运行应用程序,你可能也可以通过命令行设置激活的 profile 文件,如下所示:

% java -jar taco-cloud.jar --spring.profiles.active=prod

请注意 spring.profiles.active 属性名包含的是复数单词 profiles。这意味着可以指定多个活动 profiles 文件。通常,这是一个逗号分隔的列表,当它设置一个环境变量:

% export SPRING_PROFILES_ACTIVE=prod,audit,ha

但是在 YAML 中,需要像下面这样指定它:

spring:
  profiles:
    active:
    - prod
    - audit
    - ha

同样值得注意的是,如果将 Spring 应用程序部署到 Cloud Foundry 中,一个名为 cloud 的配置文件会自动激活。如果 Cloud Foundry 是生产环境,那么需要确保在 cloud profile 文件中指定了特定于生产环境的属性。

事实证明,配置文件只对在 Spring 应用程序中有条件地设置配置属性有用。让我们看看如何声明特定活动 profile 文件的 bean。

最后更新于