gpt4 book ai didi

java - 获取多个与 Guice 耦合为 0 的新实例

转载 作者:行者123 更新时间:2023-11-30 07:36:10 24 4
gpt4 key购买 nike

我创建了一个类,该类使用 Java Executor API 来创建/管理具有固定线程数的池。每个线程都需要一个特定对象的新实例,我想用 Guice 注入(inject)这个对象。目前,我使用的是 Provider,它通过其 get() 方法提供对象的新实例。

但是现在这个类依赖于 Guice 特定的 Provider,有效地将代码耦合到 Guice 框架。我真的希望类(class)真正与 Guice 无关,这可能吗?

仅使用“new”关键字创建新实例不是一种选择,因为这使得无法在单元测试中通过模拟实现替换这些对象。

依赖注入(inject)可能不适合这个,我最好创建一个工厂来获取这些对象?

最佳答案

您可能要考虑的一件事是从主干构建 Guice 并使用它直到 Guice 3.0 发布。然后你可以使用JSR-330javax.inject.Provider而不是 Guice 的。

编辑:除此之外,我通常认为耦合到 DI 容器(通过从 com.google.inject 导入一些东西,在这种情况下) 不像人们有时认为的那样是个问题。只要您不依赖于如何获得依赖项的细节(例如,在所有地方注入(inject) Injector ),就很容易,比如说,更改您注入(inject)的所有地方 Provider 取而代之的是你自己的具有类似功能的界面。取决于作用域等强大的功能,您才能真正将自己与容器结合起来。我认为这也很好,考虑到它们为您节省了多少丑陋和精力。

关于java - 获取多个与 Guice 耦合为 0 的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867896/

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