我想问一下如何配置Guice,因此生成的DI容器将包含2个相同类的实例,但是每个实例都提供了其依赖项的不同实现。
考虑那里的课程:
interface Foo {}
class FooImpl1 implements Foo {}
class FooImpl2 implements Foo {}
class Bar(Foo foo) {}
假设您可以使用某些YAML(ish)进行依赖项配置
services:
-
name: "Bar-1"
type: Bar
dependencies:
- FooImpl1
-
name: "Bar-2"
type: Bar
dependencies:
- FooImpl2
请注意,YAML配置中存在实例化逻辑,其中指出名为Bar
的{{1}}实例(我们需要以某种方式命名实例,以便能够区分它们,因为它们具有相同的类型)将被Bar-1
提供,而名为FooImpl1
的实例将被Bar-2
提供。
如何使用Guice配置实现此目的?我明确强调我不想以任何方式修改代码类。
谢谢!