Bean и E Bean концепция Android Аннотации

жаль, что я новичок в Android Annotations и Dependency Injection в целом. Я пытаюсь понять, как все работает и какие преимущества я получаю с помощью аннотаций Android.
Я изучил примеры примеров, все ясно о @EActivity, @ViewById, @App и других широко используемых аннотациях в Android-разработке.
У меня проблемы с пониманием понятия Ebean. Я использовал spring для Java, совершенно ясно, что мы объявляем beans в xml файле и просто используем их внутри кода таким образом, чтобы мы могли легко изменить внутри xml файла только для конкретной реализации, и он будет изменен везде где мы использовали bean по идентификатору от AppContext.
Но я не понимаю цели использования beans в случае аннотаций Android, возможно, я вообще не понимаю DI.

@EBean
public class MyClass {
  // ...  
}

@EActivity
public class MyActivity extends Activity {

  @Bean
  MyClass myClass;

}

Какое преимущество у нас здесь? Мы омминг только линии myClass = new MyClass();?
И все? Другим примером является область Singletone.

@EBean(scope = Scope.Singleton)
public class MyClass {
  // ...  
}

В этом случае мы получаем некоторую выгоду, нам не нужно создавать экземпляр private private, частный конструктор и проверять, является ли он нулевой (ленивая инициализация).....

В этом случае я понимаю, что это может сэкономить время, но в первом примере у меня нет никаких преимуществ для меня, у нас нет файла xml, где мы можем строить наши зависимости bean между beans только аннотациями. < ш > Пожалуйста, помогите мне понять это. Спасибо всем заранее.