gpt4 book ai didi

java - Google Guice 自定义范围

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:59 25 4
gpt4 key购买 nike

只是一个简短的问题,看看我是否正确理解范围。

我理解范围是控制创建实例的方式/时间。现在我在一个应用程序中有一个类,我想要它的两个实例;每一个都将被注入(inject)到其他一些实例中。

在 Guice 中是否可以为每个实例创建两个作用域?然后我可以根据需要将每个作用域实例注入(inject)任何其他实例?

最佳答案

范围:

  1. 范围允许您控制对象的生命周期。

  2. 您只能bindScope() 一个作用域注解一次。作用域的概念是注入(inject)器级别的:它是接线配置。

  3. 您可以将多个事物(键)绑定(bind)到一个作用域中。

  4. 您可以定义任意多个范围,但每个绑定(bind)只能在一个范围内。

您没有给出问题的全部细节,但根据我的经验,在大多数情况下,自定义范围最初似乎是正确的答案,但实际上很少是这样!

也许你想要的是注释一种类型的两个实例?像这样的东西:

bind(SomeService.class).in(First.class).to(FirstServiceImpl.class);
bind(SomeService.class).in(Second.class).to(SecondServiceImpl.class);

然后你可以注入(inject)你想要的:

@Inject
SomeConstructor(@First SomeService service) {
}

或:

@Inject
SomeConstructor(@Second SomeService service) {
}

如果这没有帮助,那么您可能需要提供有关问题的更多详细信息。

关于java - Google Guice 自定义范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429221/

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