0
在玩的Scala 2.5應用程序,我定義我的控制器喜歡 -我們如何可以調用從其它控制器功能於一身的遊戲控制器階
class Application @Inject() (ws:WSClient) extends Controller{
現在,我想打電話給另一個控制器類 - ConfigReader的功能readConfig()
有沒有辦法做到這一點,如果我沒有使用服務的這種特殊的使用情況在控制器中共享功能?
在播放2.4,控制器作爲對象,我可以很容易地與Appliation.readConfig()
做到這一點。我們怎樣才能用控制器作爲類來做到這一點?
如果你發現自己想調用另一個控制器,你可能想質疑你的架構:控制器不應該包含邏輯。你可能會更好地創建一個額外的類(這不是一個控制器)與共享邏輯,你可以在兩個控制器中使用。其中的好處是:測試,你可以做一些結果(如果你從控制器調用控制器,結果將是一個'Result') – rethab
@rethab謝謝, – user189107
@rethab,現在,我做了一個單獨的服務包含一個包含要由控制器共享的函數的類(DataOperations)。函數readConfig()在此需要使用play的classLoader讀取json文件。我應該使用DataOperations作爲類還是將其聲明爲對象?假設此函數需要Environment對象獲取當前應用程序上下文。您能否就我如何在應用程序控制器中調用DataOperations的函數建議我一個有效的方法? – user189107