如何在play框架中调用onStart方法全局设置?

时间:2016-01-30 19:03:17

标签: java mongodb playframework playframework-2.0 morphia

我正在使用以下代码:

package common;

import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Morphia;
import play.GlobalSettings;
import java.util.Arrays;


public class Global extends GlobalSettings {

private static Datastore datastore;


public static Datastore getDatastore() {
    return datastore;
}

@Override
public void onStart(play.Application config) {
    super.beforeStart(config);

    int mongoPort = config.configuration().getInt("mongo.port");
    MongoClient mongoClient = new MongoClient(Arrays.asList(
            new ServerAddress(config.configuration().getString("mongo.server1"), mongoPort)));

    Morphia morphia = new Morphia();
    datastore = morphia.createDatastore(mongoClient, config.configuration().getString("mongo.db"));
    datastore.ensureIndexes();
}
}

我通过以下方式调用getDatastore()方法:

public void save() {
    Global.getDatastore().save(this);
}

但它会在return datastore行引发nullpointer异常。当我将调试点放在onStart方法上时,它甚至都没有被调用。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

你必须设置

application.global=common.Global

application.conf