更改application.conf运行时?

问题描述 投票:4回答:2

我想在运行时为我的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);
   }
}

但是当执行上面的代码实际上没有改变时,我想只是在内存中。

如何设置数据库属性并强制播放!使用此属性以连接到正确的数据库onApplicationStart?

谢谢!

更新2012-01-29

可以通过插件解决方案。在这个插件中,我必须覆盖onConfigurationRead()并在那一刻将属性应用于配置文件。我会尽快发布一些代码。

properties playframework
2个回答
1
投票

当您更改属性时,DB插件已经初始化。您需要编写一个插件并覆盖onConfigurationRead()方法,然后将新设置放在那里。 Paly的dbplugin将在稍后启动。


0
投票

你确定这是你真正打算做的吗? Play提供了在application.conf中添加不同配置的可能性

例如,您可以:

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

然后以播放开始 - %uat或播放开始 - %prod启动应用程序

© www.soinside.com 2019 - 2024. All rights reserved.