在 Play for Scala 中访问单例值
Accessing Singleton values in Play for Scala
我在 Scala 中定义了以下单例
package main
import javax.inject._
@Singleton
class Properties {
val timeout = 120
}
如何从其他程序访问它?我试过 main.Properties.timeout
但它抛出一个编译错误,提示未找到伴随对象
如果您想以您提到的方式访问它:main.Properties.timeout
,则改用伴随对象:
class Properties {
// ...
}
object Properties {
val timeout = 120
// ...
}
使用 @Singleton
注释,您必须将该服务注入某处才能使用它。所以像这样:
import javax.inject._
import main.Properties
class SomeService @Inject() (props:Properties)() {
println(props.timeout)
}
这是有关 PlayFramework DI 的文档:https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection - 最新的(不是 2.0),但这是一个很好的起点。
我在 Scala 中定义了以下单例
package main
import javax.inject._
@Singleton
class Properties {
val timeout = 120
}
如何从其他程序访问它?我试过 main.Properties.timeout
但它抛出一个编译错误,提示未找到伴随对象
如果您想以您提到的方式访问它:main.Properties.timeout
,则改用伴随对象:
class Properties {
// ...
}
object Properties {
val timeout = 120
// ...
}
使用 @Singleton
注释,您必须将该服务注入某处才能使用它。所以像这样:
import javax.inject._
import main.Properties
class SomeService @Inject() (props:Properties)() {
println(props.timeout)
}
这是有关 PlayFramework DI 的文档:https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection - 最新的(不是 2.0),但这是一个很好的起点。