【问题标题】:How in grails yml config access to environment variables?如何在 grails yml config 中访问环境变量?
【发布时间】:2015-06-03 10:30:15
【问题描述】:

我想使用 Openshift 来托管我的 Grails 应用程序,并在 Openshift 上设置 MySQL 数据库。

Openshift 仅提供数据库的登录名和密码,但连接字符串采用环境变量OPENSHIFT_MYSQL_DB_HOST:OPENSHIFT_MYSQL_DB_PORT 的形式,我看不到我的数据库的这个变量的实际值是什么。现在我需要设置我的 YML 配置来访问数据库,但我需要以某种方式从 YML 访问环境变量 OPENSHIFT_MYSQL*

我该怎么做?

【问题讨论】:

  • 您可以尝试在 gsp 页面 System.getenv('OPENSHIFT_POSTGRESQL_DB_USERNAME') 中使用以下代码访问
  • @AnantKolvankar 它不是 gsp 页面。我需要访问 YML 文件。请阅读一个问题。
  • 您想从您的 Openshift 应用程序中读取数据库配置吗?
  • 你可以设置你的数据源production { dataSource { String host = System.getenv('OPENSHIFT_MYSQL_DB_HOST') String port = System.getenv('OPENSHIFT_MYSQL_DB_PORT') String dbName = System.getenv('OPENSHIFT_APP_NAME') url = "jdbc:mysql://$host:$port/$dbName" username = System.getenv('OPENSHIFT_MYSQL_DB_USERNAME') password = System.getenv('OPENSHIFT_MYSQL_DB_PASSWORD') } }
  • 不,我有 YML 格式的配置,没有 grails 代码。我想在我的 YML 配置中访问环境变量。

标签: grails yaml openshift


【解决方案1】:

您在 yaml 文件中通过 ${MYVAR} 引用名称为 MYVAR 的系统环境变量。

application.properties 中的值通过现有的过滤 Environment 使用的时候可以参考之前的 定义的值(例如,来自系统属性)。

app.name=MyApp app.description=${app.name} is a Spring Boot application

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-placeholders-in-properties

【讨论】:

猜你喜欢
  • 2020-08-16
  • 1970-01-01
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
相关资源
最近更新 更多