我现在正在一个使用Scaldi的项目中工作,我正在学习它,到目前为止看起来不错,但我仍然没有弄清楚它提供的指南/果汁的实际功能。
这两个框架之间的实际区别是什么?
Scaldi 是否更注重功能?
如果我从一个转移到另一个,我会失去/获得什么?
我现在正在一个使用Scaldi的项目中工作,我正在学习它,到目前为止看起来不错,但我仍然没有弄清楚它提供的指南/果汁的实际功能。
这两个框架之间的实际区别是什么?
Scaldi 是否更注重功能?
如果我从一个转移到另一个,我会失去/获得什么?
Guice 是一个 java 库,因此它也是根据 java 习惯用法和常见模式实现的(它大量使用注释和反射)。另一方面,Scaldi 是根据 Scala 的常见模式和习语实现的。因此它使用隐式参数、类型类、宏、类型标签等。scaldi 的一个重要目标是避免使用注释、反射和运行时字节码操作。尽管它的一小部分使用了 scala 反射,但在大多数情况下它是无反射的。这意味着您负责类的实例化(不是通过反射完成的)。作为它的直接结果,scaldi 使用了隐式 Injector 参数,这对于实现 annotation/reflection-free 注入机制是必要的。Scaldi 还有几个我没有的功能条件绑定、属性注入器或构造函数注入器的宏(类似于 macwire,但使用 scaldi 的注入机制)。