gpt4 book ai didi

scala - Scaldi - 绑定(bind)到单个/多个实例

转载 作者:行者123 更新时间:2023-12-04 04:35:00 25 4
gpt4 key购买 nike

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

在 SubCut 中,定义绑定(bind)时,可以 choose between different binding modes - toSingle , toProvider , to moduleInstanceOf , toModuleSingle ,它决定注入(inject)的实例是创建一次,还是每次执行绑定(bind)时创建。我没有看到 Scaldi documentation 中明确定义的类似行为。 ,所以我想确保我了解如何在 Scaldi 中实现不同的行为:

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

bind [Widget] toProvider new ParticularWidget()

...将创建一个新的 ParticularWidget每次注入(inject) Injectable .

我是否正确理解这一点?

最佳答案

是的,它完全按照您的描述工作。如果绑定(bind)是用 toProvider 定义的, 然后注入(inject)将始终创建新实例。

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

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

更新

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

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

关于scala - Scaldi - 绑定(bind)到单个/多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com