如何仅使用guice注入一个变量?

问题描述 投票:0回答:1

我上了这样的课:

public class Person {
    private final Object1 object1;  //taking this as constructor parameter
    private final Object2 object2;  //want to inject only this?

    @Inject
    public Person(final Object1 object1) {
        this.object1 = object1;
    }
}

假设我想要一个仅在参数中包含object1的构造函数,而我想注入object2?我该如何实现?

java dependency-injection guice inject
1个回答
0
投票

您只能注入一个ctor。

但是您可以使用工厂。看这个

https://google.github.io/guice/api-docs/3.0/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html

根据您选择通过工厂的参数(@Assisted Object1 / Object2),它将委派给适当的构造函数。

© www.soinside.com 2019 - 2024. All rights reserved.