【发布时间】:2021-07-05 06:08:11
【问题描述】:
我想在 Scala 伴生对象中使用单例类,但我正在使用 Guice 依赖注入,据我所知,它在这些场景中没有明确的用法。
例如,假设我们有如下的 Singleton(使用 Guice)类:
@Singleton
class Foo Inject()(foo2: Foo2) {
def func = { ... }
}
我可以在其他类中使用它:
class MyClass Inject()(foo: Foo) {
foo.func()
}
对象呢?我需要用new 创建一个实例:
object MyObject {
val foo2 = new Foo2()
val foo = new Foo(foo2)
foo.func()
}
在这种情况下,Foo 是否仍然只有一个实例?我的意思是,new Foo(foo2) 返回的实例是否与 Guice 在 @Inject()(foo: Foo) 中返回的实例相同?
顺便说一句,已经有关于这个的问题(例如,link)但我想使用对象并访问其中的单例实例。
【问题讨论】: