Изменить application.conf время выполнения? - PullRequest
4 голосов
/ 29 января 2012

Я хочу установить соединение с базой данных во время выполнения моего проекта Play. Я знаю, что могу установить время выполнения свойства с помощью следующего кода:

@OnApplicationStart public class Bootstrap extends Job
{
   @Override public void doJob()
   {
     // now set the values in the properties file
     Play.configuration.setProperty("db.driver", dbDriver);
     Play.configuration.setProperty("db.url", dbUrl);
     Play.configuration.setProperty("db.user", dbUsername);
     Play.configuration.setProperty("db.pass", dbPassword);
   }
}

Но при выполнении кода выше файл фактически не изменяется, я думаю, просто в памяти.

Как мне установить свойства базы данных и заставить играть! использовать эти свойства для подключения к нужной базе данных на ApplicationStart?

Спасибо!

ОБНОВЛЕНИЕ 2012-01-29

Решение возможно через плагин. В этом плагине я должен переопределить onConfigurationRead () и применить свойства к файлу конфигурации в тот момент. Я постараюсь опубликовать некоторый код, как только у меня будет время для этого.

Ответы [ 2 ]

1 голос
/ 29 января 2012

Ко времени изменения свойств плагин БД уже инициализирован.Вам нужно написать плагин и переписать метод onConfigurationRead (), а затем поместить туда новые настройки.Dbplugin Пэли начнет позже.

0 голосов
/ 29 января 2012

Вы уверены, что это то, что вы действительно собираетесь делать?Play предлагает возможность добавлять различные конфигурации в ваше приложение .conf

, например, вы можете иметь:

db.url=mydefaulturl
%uat.db.url=uaturl
%prod.db.url=produrl
%prod1.db.url=prod1url

, а затем запустить приложение с play start -% uat или начало воспроизведения -% prod

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...