Dependency Injection (DI) — это паттерн проектирования, который реализует Inversion of Control (IoC) в фреймворке Spring. Он разделяет создание объектов и бизнес-логику, делая приложения более гибкими и удобными в поддержке.
Вместо того чтобы создавать объекты напрямую через new, DI предполагает описание того, как объекты должны создаваться. Этот подход:
Spring контейнер (также называемый IoC контейнером) отвечает за:
Вместо ручного создания зависимостей ты их конфигурируешь через:
@Autowired, @Inject)С DI ты объявляешь зависимости, не создавая их напрямую. Контейнер автоматически внедряет нужные объекты во время выполнения, следуя конфигурации, которую ты определил. Это означает, что менять реализации становится просто — нужно только обновить конфигурацию, а не сам код.
Вместо:
Service service = new ServiceImpl();
Ты позволяешь контейнеру всё сделать через конфигурацию и получаешь зависимость там, где она нужна.
Этот паттерн — основа архитектуры Spring и позволяет строить слабо связанные, тестируемые и удобные в поддержке приложения.
Dependency Injection требует использования ключевого слова new для явного создания объектов, которыми затем управляет контейнер Spring и вводит их в зависимые классы.
Новый — ещё не проверен сообществом
Вы