Scaldi和Guice有什么区别

时间:2016-12-28 00:56:32

标签: scala dependency-injection guice scaldi

我现在正在开发一个使用 Scaldi 的项目,我正在学习它,到目前为止看起来很好,但我仍然没有弄清楚它提供的实际功能指南/果汁。

两个框架之间的实际差异是什么?

Scaldi是否更具功能性?

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

1 个答案:

答案 0 :(得分:5)

  

Guice是一个java库,因此它也是用java实现的   成语和常见模式(它大量使用注释和   反射)。另一方面,Scaldi是以实现的方式实现的   Scala的常见模式和习语。所以它使用隐式参数,   类型类,宏,类型标签等。斯卡尔迪的一个重要目标是   避免使用注释,反射和运行时字节码   操纵。即使它的很小一部分使用scala   反射,大多数情况下它是无反射的。这意味着   你负责你的课程的实例化(这不是通过   反射)。作为它的直接结果,scaldi使用隐式Injector   参数,这是实现的必要条件   注释/反射注射机制。斯卡尔迪也有   我没有在guice中看到的一些功能,例如conditional bindingsproperty injectormacro for constructor injector(其中   类似于macwire,但使用scaldi的注入机制。)

Source