Guice Scala DI,了解如何
如果在我的模块文件中有@Provides注释返回一个对象,但我从未将其注入任何地方,是否会在scala中调用默认构造函数?根据Google Guice官方文档: @提供方法当您需要代码来创建对象时,请使用@Provides方法。该方法必须在模块中定义,并且必须具有@Provides注释。该方法的返回类型是绑定类型。每当注入器需要该类型的实例时,它都会调用该方法 因此,构造函数永远不会被调用 如果仍然需要构造对象,请使用Guice Scala DI,了解如何,scala,guice,Scala,Guice,如果在我的模块文件中有@Provides注释返回一个对象,但我从未将其注入任何地方,是否会在scala中调用默认构造函数?根据Google Guice官方文档: @提供方法当您需要代码来创建对象时,请使用@Provides方法。该方法必须在模块中定义,并且必须具有@Provides注释。该方法的返回类型是绑定类型。每当注入器需要该类型的实例时,它都会调用该方法 因此,构造函数永远不会被调用 如果仍然需要构造对象,请使用com.google.inject.Singleton注释: import c
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!
我想是的。您可以通过在默认构造函数中放入
println
来验证它。嘿@KumarKavish!“我的回答有用吗?”马修尔当然有用!谢谢很抱歉迟了答复