Scaldi - 绑定到单个/多个实例

时间:2013-11-09 14:33:16

标签: scala scaldi

我最近从SubCut切换到了Scaldi,并且我找到了一个未记录/缺失的功能:

在SubCut中,当您定义绑定时,您可以choose between different binding modes - toSingletoProviderto moduleInstanceOftoModuleSingle来确定是否注入了实例将创建一次,或每次执行绑定。我没有看到Scaldi documentation中明确定义的类似行为,所以我想确保理解Scaldi中可以实现的不同行为:

默认情况下,to方法是惰性的,并在第一次“请求”时创建注入的实例。在the api中有一个toNonLazy,我猜想在第一次“请求”之前创建实例。并且有一个toProvider,在下面的例子中......

bind [Widget] toProvider new ParticularWidget()

...每次在ParticularWidget中注入时都会创建一个新的Injectable

我是否正确理解了这一点?

1 个答案:

答案 0 :(得分:3)

是的,它完全按照您的描述运作。如果使用toProvider定义绑定,则inject将始终创建新实例。

您可以在此规范中查看其行为:

https://github.com/scaldi/scaldi/blob/master/src/test/scala/scaldi/WordBinderSpec.scala#L100


更新

您可以在文档中找到更多信息:

http://scaldi.org/learn/#define-bindings