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



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

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

默认情况下,to 方法是惰性的,并在第一次"请求"时创建注入的实例。api中有一个toNonLazy,我想它甚至在第一次"请求"之前就创建了实例。还有一个toProvider,在下面的示例中...

bind [Widget] toProvider new ParticularWidget()

。每次注入Injectable时都会创建一个新ParticularWidget.

我理解正确吗?

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

您可以在此规范中看到其实际行为:

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


更新

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

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

最新更新