Scala 为什么在创建类的对象时需要提供注入参数?
我对使用GoogleGuice进行依赖注入有疑问 我有一个特点,就是几乎没有实现的方法Scala 为什么在创建类的对象时需要提供注入参数?,scala,dependency-injection,guice,Scala,Dependency Injection,Guice,我对使用GoogleGuice进行依赖注入有疑问 我有一个特点,就是几乎没有实现的方法 trait ATrait { def someMethodA(parameters: ArgType) = { //code } def someMethodB(parameters: ArgType) = { //code } } object A extends ATrait 现在我有了一个B类,我需要它的方法。所以我注射了它 class B
trait ATrait {
def someMethodA(parameters: ArgType) = {
//code
}
def someMethodB(parameters: ArgType) = {
//code
}
}
object A extends ATrait
现在我有了一个B类,我需要它的方法。所以我注射了它
class B @Inject(a: ATrait) {
//code
}
我还提供了Guice模块类中的绑定
class GuiceModule extends AbstractModule {
override def configure(): Unit = {
bind[ATrait].toInstance(A)
}
}
现在当我创建一个B类的对象时
val b = new B()
它不允许我这样做,所以我的问题是我是否必须手动传递它的对象。GoogleGuice注入有什么用
我可能犯了一些错误,因为我正在学习这一点。如果我没有正确理解某事,请指导我
提前谢谢。Guice不是那样工作的。如果您想要一个新的根对象,您需要向Guice请求一个新实例
val injector = Guice.createInjector(new GuiceModule())
val a:ATrait = injector.getInstance(classOf[ATrait])
Guice不是那样工作的。如果您想要一个新的根对象,您需要向Guice请求一个新实例
val injector = Guice.createInjector(new GuiceModule())
val a:ATrait = injector.getInstance(classOf[ATrait])