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