Scaldi和Guice之间有什么区别?

5

我现在正在一个使用Scaldi的项目中工作,我正在学习它,目前看起来很不错,但是我仍然没有弄清楚它提供的实际功能与guide/juice有何区别。

这两个框架的实际区别是什么?

Scaldi是否更加注重功能性?

如果我从一个框架转移到另一个框架,我会失去/获得什么?

1个回答

6
Guice是一个Java库,因此它也是基于Java习惯用语和常见模式实现的(它大量使用注释和反射)。另一方面,Scaldi是基于Scala的常见模式和习惯用语实现的。因此,它使用隐式参数、类型类、宏、类型标记等。 Scaldi的一个重要目标是避免使用注释、反射和运行时字节码操作。即使其中很小一部分使用了Scala反射,但在大多数情况下,它是无需反射的。这意味着您负责实例化您的类(不是通过反射完成的)。由此直接产生的结果是Scaldi使用隐式注入器参数,这对于实现无注释/反射注入机制是必要的。Scaldi还具有一些我没有在Guice中看到的功能,例如条件绑定属性注入器构造函数注入器的宏(类似于Macwire,但使用Scaldi的注入机制)。

来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接