Я читал больше о принципах Inversion of Control и Inpendency Injection как его реализации, и я уверен, что понимаю его.
Кажется, что в основном говорится «не объявляйте инстанцирования ваших учеников внутри класса». Скорее, что экземпляры должны быть переданы и назначены через конструктор; «введен» в класс из внешнего источника.
Если это так просто, как кажется, зачем нам нужны такие фреймворки, как spring или guice, которые реализуют это с аннотациями? Я что-то упустил здесь? Я действительно изо всех сил пытаюсь понять, что такое использование платформ Dependency Injection.
Изменить: О возможном дубликате, я считаю, что мой вопрос является более уникальным, поскольку он задает вопросы о каркасах DI в целом, а не только Spring. Spring - это не просто структура DI, поэтому есть много причин, по которым кто-то захочет использовать Spring, которые не связаны с DI.