我已经声明了一个在应用程序启动时实例化的对象。我想在控制器中访问它,它是插件的一部分。我希望能够使用该插件,但我似乎无法超越第一部分——找到MyWebsocketConnection
对象。没有一个示例显示如何执行此操作。我不想注入控制器,因为我正在编写一个插件(我在某处看到了如何做到这一点的静态示例)。
Global.scala
, 插件应用程序\app\Global.scala
object Global extends GlobalSettings {
object MyWebsocketConnection {
val logger = // return something that gets instantiated once, like websocket object for logging to ui
}
class MyWebsocketConnection {
import MyWebsocketConnection.logger
}
override def onStart(app: Application) {
Logger.info("Application has started...");
}
}
我的自定义日志插件控制器:
MyLogger.Scala
, 插件应用程序\app\controllers\MyLogger.scala
object MyLogger {
def info(message: String) = {
// THIS CAN'T BE FOUND ?
// MyWebsocketConnection.logger.send(message)
}
}
所以,从戏剧!2.0 引用插件的应用程序,我会(可能)做类似下面的事情,但我什至无法超越这之前的部分:
MyFutureController.scala
,另一场比赛!应用程序 \app\controllers\MyFutureController.scala
object MyFutureController extends Controller {
def someRandomMethod = Action {
// Custom logging
MyLogger.info("Here's my log message!");
Ok("This documentation stinks!")
}
}