我的应用程序使用 Guice 进行依赖注入(inject),由几个模块组成,一些依赖于类 X 的实例,一些需要能够独立于主应用程序运行。 因此,在 MainModule 中,我必须提供 X 类实例,而一些子模块也需要提供该实例,因为它们各自的应用程序需要能够在 MainModule 不提供 X 类实例的情况下运行。这会导致错误因为“已经绑定(bind)了 X 类的一个实例”。
我已经四处寻找了一段时间,但大多数情况下,我发现对 PrivateModules 的引用并没有真正满足我的需要,我还在 OptionalBindings 上找到了很多,据我所知,它们主要提供默认值。
我需要的是某种条件绑定(bind),如“如果另一个模块提供了 X 类的实例,则什么也不做,如果没有其他模块提供 X 类的实例,则提供这个。”
最佳答案
https://google.github.io/guice/api-docs/latest/javadoc/com/google/inject/util/Modules.html
覆盖方法可能就是你想要的
关于java - 在没有其他模块提供该实例的情况下提供实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56983651/