类参数和注入参数之间的差异

时间:2018-04-11 06:21:43

标签: scala inject

这可能是一个非常愚蠢的问题,因为我正在学习这个。 我对此有疑问, 例如,我有三个类ABC

班级D需要所有三个班级。

所以我可以声明我们的class D将另一个类对象作为类参数或者可以注入它们,

class D(a: A, b: B, c: C)

class D @Inject()(a: A, b: B, c: C)

他们都允许我使用A,B和C类的对象。

两种方法之间究竟有什么区别?我们什么时候应该使用哪一个?

提前致谢:)

1 个答案:

答案 0 :(得分:1)

我不是专家,但@Inject注释与像Guice这样的依赖注入框架有关。如果可以,Guice将初始化A,B和C.恕我直言,大多数这个框架的问题是他们可以在运行时抛出布线异常(容器是一个非常黑暗的世界:P)。尝试使用,至少如果你正在学习,第一种方法。它将帮助您专注于学习语言基础知识,而不是与DI框架作斗争,编译器将为您提供很多帮助。我建议您为大型项目提供DI框架。