繁体   English   中英

播放Java框架,在启动应用程序时初始化变量

[英]Play java framework Initializing variables on application startup in

我想在Play框架中的应用程序启动时初始化一些变量。 我正在按照此文档http://www.playframework.com/documentation/2.2.x/JavaGlobal进行相同的操作。但是,当我运行该应用程序时,使用命令“ play run”得到的初始化不会发生。 我在这里做错什么了吗?

import com.Constants;

import controllers.Application;
import controllers.Utils;
import play.*;

public class Global extends GlobalSettings {
  public void onStart(Application app) throws Exception {
    Logger.info("Application has started");
    Constants.data1= Utils.getMerchantToBrMapping(Utils.getMerchantName());
    Constants.data2 = Utils.getBrToMerchantMapping(Utils.getMerchantName());
    Logger.info("Loaded the Merchant To BR Map");
  }
}

您的Application控制器将用作onStart(Applciation app)方法中app参数的实现。

换句话说,您并没有覆盖Play将会调用的onStart()回调方法,而是仅定义了自己的自定义方法。

它应该像这样:

import play.Application;
import play.GlobalSettings;
import play.Logger;

import controllers.Utils;
import com.Constants;

public class Global extends GlobalSettings {

    @Override
    public void onStart(Application app) {
        Logger.info("Application has started");
        Constants.data1 = Utils.getMerchantToBrMapping(Utils.getMerchantName());
        Constants.data2 = Utils.getBrToMerchantMapping(Utils.getMerchantName());
        Logger.info("Loaded the Merchant To BR Map");
    }
}

注意import play.Application;import play.Application; 而不是您的控制器。 另请注意, onStart()不会引发异常。 如果添加了@Override批注,它将提示问题,因此请记住以备将来参考。

更多关于全球的信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM