Playframework 动态启动游戏中的DB线程池

Playframework 动态启动游戏中的DB线程池,playframework,datasource,threadpool,playframework-2.3,Playframework,Datasource,Threadpool,Playframework 2.3,我在conf/application.conf文件中定义了多个数据库,如下所示: db.something.driver=com.mysql.jdbc.Driver db.something.url="jdbc:mysql://host:3306/something" db.something.user=user db.something.pass=pass 启动时,为每个模式按播放设置线程池/数据源。如何以编程方式执行此操作?我必须能够在应用程序运行时动态添加数据源。通过Play源代码进行调

我在
conf/application.conf
文件中定义了多个数据库,如下所示:

db.something.driver=com.mysql.jdbc.Driver
db.something.url="jdbc:mysql://host:3306/something"
db.something.user=user
db.something.pass=pass

启动时,为每个模式按播放设置线程池/数据源。如何以编程方式执行此操作?我必须能够在应用程序运行时动态添加数据源。

通过Play源代码进行调试后,我在
Play.db.Databases
中找到了此方法:

    public static Database createFrom(String name, String driver, String url, Map<String, ? extends Object> config) {
        ImmutableMap.Builder<String, Object> dbConfig = new ImmutableMap.Builder<String, Object>();
        dbConfig.put("driver", driver);
        dbConfig.put("url", url);
        dbConfig.putAll(config);
        return new DefaultDatabase(name, dbConfig.build());
    }
公共静态数据库createFrom(字符串名称、字符串驱动程序、字符串url、映射配置){ ImmutableMap.Builder dbConfig=新的ImmutableMap.Builder(); dbConfig.put(“driver”,driver); dbConfig.put(“url”,url); dbConfig.putAll(config); 返回新的DefaultDatabase(名称,dbConfig.build()); } 通过调用:
Databases.createFrom(“mydb”、“driver”、“url”和conf)
使用它,最后一个参数包含用户名和密码以及您需要的任何其他参数

然后,
application.conf
中的数据库定义就过时了。但是,将这些数据库对象存储在映射中以供以后重用是有意义的