java - 单例对象在java中的发挥!框架

标签 java web-applications playframework singleton

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

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

谢谢!

最佳答案

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

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

你也可以用同样的方式从其他类(class)访问它:

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

关于java - 单例对象在java中的发挥!框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28620067/

相关文章:

web-applications - 当用户离开页面时如何取消angularjs $timeout

web-applications - ios8 safari 独立 Web 应用程序在单击选择时崩溃

Scala 从 future 中提取结果

scala - 将已经经过 Gzip 压缩的有效负载发送到客户端

java - 在 Play 2.3.7 上从 Promise<JsonNode> 检索 HTTP 状态

java - 有没有一种方法可以在不单击代码的情况下选择代码中的文本字段(javafx)?

java - 在 Java Web Start 中运行 JNLP 时出现 NullPointerException(jar 用作 stardardlone)

java - 获取 Map 中最少出现的值

javascript - 构建 js/ajax 网络应用程序 : separating structure and content in dynamic web form

Java - 具有相同引用的对象池