一种可能的方法是使用在Global.
scala中初始化的Singeleton对象.
全局对象必须进入应用程序的scala-root或通过application.conf进行配置.
单身共享数据
在app / shared / Shared.scala(名称是免费的)
package shared
object Shared {
private var data: Int = 0
def setData(d: Int) : Unit = data = 0
def getData : Int = data
}
在application.conf中,您可以设置要在应用程序启动时调用的Global(您也可以在应用程序中放置一个名为Global.scala的文件,默认情况下将使用该文件)
application.global= settings.Global
shared.initial = 42
在app / settings / Global.scala中
object Global extends GlobalSettings {
override def onStart(app: Application) {
// Here I use typesafe config to get config data out of application conf
val cfg: Config = ConfigFactory.load()
val initialValue = cfg.getInt(shared.initial)
// set initial value for shared
Shared.setData(initialValue)
}
}
在Play代码中获取或设置共享数据.
import shared.Shared
Shared.getData
Shared.setData( 8 )