0

我有一个 Spring Boot 应用程序,我想根据我正在运行的配置文件从 Vault 加载配置。目前我有 2 个配置文件(开发、产品)。我的 Dev Profile 使用 H2 数据库,而 Prod Profile 使用 Posgres DB。运行开发配置文件会从 Vault 加载正确的配置,但使用 Prod 配置文件运行似乎会以某种方式跳过它,而不是查看 Vault。

引导程序.yaml

spring:
  application:
    name: my-app
  profiles:
    active:
  cloud:
    vault:
      host: localhost
      port: 8200
      scheme: http
      uri: http://localhost:8200
      connection-timeout: 5000
      read-timeout: 15000
      authentication: TOKEN
      token: 00000000-0000-0000-0000-000000000000
      kv:
        enabled: true
        backend: secret
        default-context: my-app/dev
      fail-fast: false

引导-prod.yaml

spring:
  application:
    name: gateway
  profiles:
    active: prod
  cloud:
    vault:
      host: localhost
      port: 8200
      scheme: http
      uri: http://localhost:8200
      connection-timeout: 5000
      read-timeout: 15000
      authentication: TOKEN
      token: 00000000-0000-0000-0000-000000000000
      kv:
        enabled: true
        backend: secret
        default-context: my-app/dev
      fail-fast: false

例如,运行该命令gradle将从 Vault 加载配置。但运行gradle -Pprod无法从 Vault 加载正确的配置。

4

1 回答 1

0

在使用 gradle 时尝试使用以下语法来激活您的个人资料:

./gradlew clean bootRun --args='--spring.profiles.active=prod'
于 2020-09-16T02:09:49.010 回答