如何在dagger2中建立模型循环依赖关系?

时间:2020-07-07 14:10:02

标签: java dependency-injection dagger-2

如何使用dagger2为循环依赖建模? 可以说我们只有两个类。第一次注入是通过构造函数,第二次是通过方法,如下例所示:

symbolicatedStack

3 个答案:

答案 0 :(得分:2)

您可以使用lazy注入:

class B{
    private Lazy<A> a;

    @Inject
    public B(Lazy<A> a) {
       this.a = a;
    }
}

或者,您可以注入Provider<A>,但是请注意,每次调用Provider::get时,提供程序都会返回A的新实例(假定默认范围),而Lazy::get返回相同的实例。 / p>

答案 1 :(得分:1)

library(dplyr) housing %>% group_by(street) %>% summarise(Count=n()) Provider<A>注入其中之一,而不是直接注入A或B。然后,只要两个类在构造函数中都不需要另一个,它将起作用。如果他们在构造函数中彼此需要,那么就没有办法。

答案 2 :(得分:0)

据我所知

像这样的依赖关系表明A和B可能比应有的紧。要么合并它们,要么重构C中的公共部分