Spring - это Java-фреймворк (набор фреймворков). Приложение, созданное с помощью Spring, содержит бины (bean).
Бин (bean) - это обыкновенный Java-объект (POJO). Тип (класс) бина - это обыкновенный Java-класс. Бины помещаются в контейнер.
Два способа описания бинов (т.е. настройки бинов в контейнере):
Описание бина в Java-коде - это функция с аннотацией @Bean, создающая и возвращающая бин.
Контейнер (container) - объект ядра фреймворка Spring:
Два вида контейнеров:
Способы (варианты) внедрения зависимостей: