我已经声明了一个对象,在应用程序启动时进行实例化。我想在插件的控制器中访问它。我想要能够使用该插件,但似乎无法通过第一步--查找 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)
}
}
因此,对于引用插件的Play!2.0应用程序,我会(可能)执行以下操作,但是在此之前,我甚至无法通过下面的部分:
MyFutureController.scala
,另一个Play!应用程序 \app\controllers\MyFutureController.scala
object MyFutureController extends Controller {
def someRandomMethod = Action {
// Custom logging
MyLogger.info("Here's my log message!");
Ok("This documentation stinks!")
}
}
application.global=...
。你是正确的,应该是global=...
,不要带上application
。 - samwize