Мое понимание Guice заключается в том, что:
@Inject public class Widget(Dep one, Dep two)
)подразумевает , что Guice всегда будет вводить этот конструктор каждый раз, когда он вызывается через Injector
; и@Inject public void setDepOne(Dep one)
) подразумевает , что Guice всегда будет внедрять этот метод всякий раз, когда он вызывается, если объект Widget
был создан с использованием GuiceInjector
Верны ли эти два предположения? ? Если нет, уточните!
Так что я зациклился на том,:каковы последствия внедрения уровня поля-?
@Inject private Dep one;
Означает ли это, что Guice всегда будет внедрять свойство, когда объект создается с помощью инжектора Guice? В этом случае я бы предположил, что это конфликтует с внедрением на уровне конструктора-.
Например, вызывает ли следующее конфликт/ошибку:
public class Widget {
@Inject private Dep one;
private Dep two;
// Dep one already injected as a field!
@Inject public Widget(Dep one, Dep two) {
//...
}
}
Заранее спасибо!