Guice:последствия внедрения поля

Мое понимание 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) {
        //...
    }
}

Заранее спасибо!

13
задан IAmYourFaja 13 April 2012 в 14:32
поделиться