2

我最近从 SubCut 切换到 Scaldi,我发现有一个功能没有记录/丢失:

在 SubCut 中,当您定义绑定时,您可以在不同的绑定模式之间进行选择- toSingletoProviderto moduleInstanceOftoModuleSingle,这决定了注入的实例是创建一次,还是每次执行绑定。我没有看到Scaldi 文档中明确定义的类似行为,所以我想确保我了解如何在 Scaldi 中实现不同的行为:

默认情况下,该to方法是惰性的,并在第一次“请求”时创建注入的实例。apitoNonLazy中有一个我猜它甚至在第一次“请求”之前就创建了实例。还有一个,在下面的例子中......toProvider

bind [Widget] toProvider new ParticularWidget()

...ParticularWidget每次注入Injectable.

我是否正确理解这一点?

4

1 回答 1

3

是的,它完全按照您的描述工作。如果绑定是用 定义的toProvider,那么注入将始终创建新实例。

你可以在这个规范中看到它的行为:

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


更新

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

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

于 2013-11-09T16:59:53.793 回答