我目前正在构建一个会计应用程序,现在我想保留这个可更改的"期间结束日期"。我相信我们可以使用全局变量,但我不知道该怎么做。到目前为止,我尝试的是像这样application.conf
创建一个变量application.date="2014/12/15"
.
此外,我不确定如何使用上述方法更改值.这个问题有什么好的方法吗?
一种可能的方法是使用在 Global.scala 中初始化的 Singeleton 对象。
全局对象必须进入应用程序的 scala 根或通过 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.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)
}
}
在播放代码中获取或设置共享数据。
import shared.Shared
Shared.getData
Shared.setData( 8 )