gpt4 book ai didi

scala - 玩! 2.0 Scala - 访问全局对象

转载 作者:行者123 更新时间:2023-12-03 01:16:43 25 4
gpt4 key购买 nike

我已经声明了一个在应用程序启动时实例化的对象。我想在 Controller 内访问它,这是插件的一部分。我希望能够使用该插件,但我似乎无法完成第一部分——查找 MyWebsocketConnection 对象。没有一个示例显示如何执行此操作。我不想注入(inject) Controller ,因为我正在编写一个插件(我在某处看到了如何执行此操作的静态示例)。

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...");
}

}

我的自定义日志记录插件 Controller :

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,另一个 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!")
}
}

最佳答案

还有解决方法 #3:将 Global 类移动到包中并在 application.conf 文件中指定其完全限定名称,如下所示:

global= my.packaged.Global

关于scala - 玩! 2.0 Scala - 访问全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com