Scala 如何使用Play Framework 2.0创建全局变量

Scala 如何使用Play Framework 2.0创建全局变量,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,如何使用Scala在Play Framework 2.0中创建全局对象/变量 我想创建一个对象,该对象一旦实例化,就可以在多个控制器操作之间持久化,这样不同的操作仍然可以调用同一个对象(因为初始化对象非常昂贵) 在不将其存储到数据库中的情况下,是否可以执行此操作?我尝试将对象粘贴到onStart方法的全局对象中,如下所示: 这是我的密码: (在根应用程序文件夹中) 在我的控制器操作中,我尝试按名称调用变量,但它不起作用。如果您的全局变量也需要对Global中的方法可用,请将它们放在Global

如何使用Scala在Play Framework 2.0中创建全局对象/变量

我想创建一个对象,该对象一旦实例化,就可以在多个控制器操作之间持久化,这样不同的操作仍然可以调用同一个对象(因为初始化对象非常昂贵)

在不将其存储到数据库中的情况下,是否可以执行此操作?我尝试将对象粘贴到onStart方法的全局对象中,如下所示:

这是我的密码:

(在根应用程序文件夹中)


在我的控制器操作中,我尝试按名称调用变量,但它不起作用。

如果您的全局变量也需要对
Global
中的方法可用,请将它们放在Global.scala中,如下所示:

package object globals {
  lazy val abc = Play.maybeApplication.flatMap(_.configuration.getString("abc")).getOrElse("default_value_of_abc")
  lazy val someActor = Akka.system.actorOf(Props[SomeActor], name = "someActor")
}
然后在控制器中使用它,如下所示:

println(globals.abc)
globals.someActor ! SomeMessage
更新


此后,文档已更新为如何在惯用剧本中添加
Global.scala
!还有,和都有文档。

请展示一些您尝试过的代码。我已经成功地使用了Global(需要在默认包中)。实际上,我可能在我的中有答案,但不知道是否有更好的方法。谢谢,你在相关问题中的代码适合我!我还更改了我的问题,以显示我有什么代码。好的,我将添加下面的代码作为回答,如果您愿意,您可以接受:)您知道如何在Java中执行吗?
println(globals.abc)
globals.someActor ! SomeMessage