簡體   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