scala – Play Framework:访问和操作全局变量

我目前正在构建会计应用程序,现在我想坚持这个可以改变的“期末日期”.我相信我们可以使用全局变量,但我不知道如何这样做.我到目前为止尝试的是在application.conf中创建一个变量,就像这个application.date =“2014/12/15”.

而且,我不确定如何使用上述方法改变价值.这个问题有什么好方法吗?

解决方法

一种可能的方法是使用在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 )

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...