java中的Singleton对象玩!骨架

时间:2015-02-20 01:11:36

标签: java web-applications playframework singleton

我对Play真的很陌生!框架,我遇到了麻烦。基本上我正在制作一个Web应用程序,其第一个操作是从文件中读取模型,我只需要执行一次而不是再次执行此操作,但此模型必须可用于Web应用程序中的控制器。我通常在java中创建一个单例,可以被其他类调用。但是,我不知道如何使用Play!

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

谢谢!

1 个答案:

答案 0 :(得分:4)

你可以像往常一样创建一个单例类(简化样本)

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;
    }
}

因此,在Global类中,您可以先在onStart方法中初始化它:

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

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

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