Я использую платформу воспроизведения (Java) и не могу понять, как использовать переменные среды в файле конфигурации для построения строки подключения к базе данных. В то время как я могу использовать переменные окружения, как это (имя пользователя и пароль):Строка подключения DB из переменных окружения
default.username = ${?FU_MAIN_DB_USERNAME}
default.password = ${?FU_MAIN_DB_PASSWORD}
Я не могу заставить его работать в url
строке. Возможно, это простой случай обработки строк в Scala, который мне не хватает, но поскольку я работаю на Java, я мог бы использовать некоторую помощь.
До сих пор я пытался url
строку в следующих форматах и не удалось:
Пробовал добавить $ к имени переменной для выполнения интерполяции:
default.url = «JDBC: PostgreSQL:// $$ {FU_MAIN_DB_HOST?}: {? FU_MAIN_DB_NAME} $$ {? FU_MAIN_DB_PORT}/$$ ";
Но это не заменяет. Скорее, он выбирает строку как таковую.
default.url = "jdbc:postgresql://${?FU_MAIN_DB_HOST}:${?FU_MAIN_DB_PORT}/${?FU_MAIN_DB_NAME}";
Это тоже вставляет '$' и все дословные. Тогда я подумал, может быть, что-то вроде PHP-стиля будет работать
default.url = "jdbc:postgresql://${${?FU_MAIN_DB_HOST}}:${${?FU_MAIN_DB_PORT}}/${${?FU_MAIN_DB_NAME}}";
Но нет.
Я также пробовал делать вещи вроде "jdbc:postgresql://".concat(${?FU_MAIN_DB_HOST}) ...
, но это также вставляет «.concat» дословно.
Наконец-то я попытался выполнить конкатенацию с помощью оператора «+», но мне сообщается (по моей IDE), что символы, такие как +: и т. Д., Не разрешены в файле application.conf
.
Как тогда, во имя Бога, я должен это делать ?!
Очень приятное предложение, но я считаю, что лучше держать вещи модульными. В синтаксисе, однако, довольно странно, что полная строка была создана без какого-либо оператора или чего-то еще. Возможно, тайна на другой день! :-) – dotslash
Ну, цитаты ужасные. Без специальных символов это выглядело бы довольно хорошо: 'foo = $ {? BASE_DIR}/$ {app.prefix}/tmp/$ {http.hostname}' – Thilo