java 中的单例对象播放!框架

Singleton object in java play! framework

我真的是 Play 新手!框架,我遇到了麻烦。基本上我正在制作一个 Web 应用程序,其第一个操作是从文件中读取模型,我只需要执行一次并且永远不会再执行此操作,但是该模型必须可用于 Web 应用程序中的控制器。我通常在 java 创建一个可以被其他 类 调用的单例中完成此行为。但是,我不知道如何使用 Play! 来做到这一点。

我读过 Global object 但它似乎只用于管理全局设置,而不是用于处理单例​​。我将不胜感激任何帮助。

谢谢!

您可以像往常一样创建...单例class(简化示例)

package utils;

public class MySingleton {
    private static MySingleton ourInstance = new MySingleton();
    private String myModel = null;

    public static MySingleton getInstance() {
        return ourInstance;
    }

    private MySingleton() {
        play.Logger.debug("READING FILE AND SETTING myModel field... almost ;)");
        myModel = "Value from somewhere";
    }

    public String getMyModel() {
        return myModel;
    }
}

所以在您的全局 class 中,您可以先在 onStart 方法中初始化它:

public void onStart(Application app) {
    MySingleton.getInstance();
    super.onStart(app);
}

您也可以通过相同的方式从其他 class 访问它:

String mySingletonsModel = MySingleton.getInstance().getMyModel();