从环境变量构建数据库连接字符串

时间:2016-12-14 08:41:13

标签: java scala playframework

我正在使用Play Framework(Java),我无法弄清楚如何在配置文件中使用环境变量来构建数据库连接字符串。虽然我可以使用这样的环境变量(用户名和密码):

                  console.log(response.headers['x-csrf-token']);
            });




         });

我无法在default.username = ${?FU_MAIN_DB_USERNAME} default.password = ${?FU_MAIN_DB_PASSWORD} 字符串中使用它。也许这是Scala中字符串处理的一个简单例子,我很遗憾,但由于我在Java工作,我可以使用一些帮助。

到目前为止,我已尝试使用以下格式的url字符串并失败:

尝试在变量名称中添加$以执行插值:

default.url =“jdbc:postgresql:// $$ {?FU_MAIN_DB_HOST}:$$ {?FU_MAIN_DB_PORT} / $$ {?FU_MAIN_DB_NAME}”;

但这不能替代。相反,它会选择字符串。

url

这也会逐字插入'$'。然后我想也许像PHP风格的东西会起作用

default.url = "jdbc:postgresql://${?FU_MAIN_DB_HOST}:${?FU_MAIN_DB_PORT}/${?FU_MAIN_DB_NAME}";

但不是。

我也尝试过像default.url = "jdbc:postgresql://${${?FU_MAIN_DB_HOST}}:${${?FU_MAIN_DB_PORT}}/${${?FU_MAIN_DB_NAME}}"; 那样的东西,但这也会逐字插入'.concat'。

最后,我尝试使用'+'运算符进行连接,但我被告知(通过我的IDE)"jdbc:postgresql://".concat(${?FU_MAIN_DB_HOST}) ...文件中不允许使用+:等符号。

那么,按照上帝的名义,我该怎么做?!

1 个答案:

答案 0 :(得分:1)

双引号关闭插值。但您需要为://

执行此操作

尝试

default.url = "jdbc:postgresql://"${?FU_MAIN_DB_HOST}":"${?FU_MAIN_DB_PORT}/${?FU_MAIN_DB_NAME}

也许你最好把整个东西设置在一个大的环境变量中。