У меня есть некоторые непонимания того, как работает этот кинжал:
Есть только два способа удовлетворить зависимость: возвращает ли метод
@Provide
экземпляр, или класс должен иметь аннотацию@Singleton
, верно? Должен ли конструктор класса иметь аннотацию@Inject
в последнем случае?Как я вижу, ObjectGraph генерирует весь материал для инъекций. И сказано, что его
inject(T instance)
следует вызывать для ввода полей. Однако я могу просто аннотировать свое поле с помощью@Inject
, и оно идет (класс поля -@Singletone
). ObjectGraph не нужен для удовлетворения такой зависимости, верно?А как же
injects{}
в@Module
, что конкретно это дает? Пожалуйста, приведите пример преимущества, когда вы сохраняете список всех инъекционных классов.