【问题标题】:How to Inject only one variable using guice?如何使用 guice 只注入一个变量?
【发布时间】:2020-04-24 16:24:28
【问题描述】:

我有一个类似这样的课程:

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? 我怎样才能做到这一点?

【问题讨论】:

  • 为什么需要手动注入依赖?
  • 什么意思?
  • 也许我不明白。你想通过构造函数注入注入obj1,通过字段注入注入object2?
  • 对对!有什么办法可以做到吗??
  • 你尝试在现场@inject 吗?但是你应该更喜欢做出选择......构造函数或字段注入......两者都很奇怪

标签: java dependency-injection guice inject


【解决方案1】:

你只能注入一个 ctor。

但你可以使用工厂。看看这个

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    相关资源
    最近更新 更多