[英]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.