![](/img/trans.png)
[英]Guice in Scala: Module for a class that has a DI-constructor itself
[英]Guice Scala DI, understanding how
如果我在模塊文件中具有@Provides批注以返回對象,但我從未將其注入任何地方,是否會在scala中調用默認構造函數?
根據官方的Google Guice文檔: https : //github.com/google/guice/wiki/ProvidesMethods
@Provides方法當需要代碼來創建對象時,請使用@Provides方法。 該方法必須在模塊中定義,並且必須具有@Provides批注。 該方法的返回類型是綁定類型。 只要注入器需要該類型的實例,它將調用該方法。
因此,構造函數將永遠不會被調用。
如果仍然需要構造對象,請使用com.google.inject.Singleton
批注:
import com.google.inject._
class DbModule extends AbstractModule {
@Provides
@Singleton
def helloWorld: HelloWorld = new HelloWorld();
}
class HelloWorld() {
println("Hello world!")
}
將打印:
Hello world!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.