Внедрение зависимости (DI — Dependency injection) — это процесс предоставления программному компоненту внешней зависимости. Согласно принципу единой обязанности, объект передает "заботу" о построении нужных ему зависимостей внешнему механизму, который специально для этого предназначен.
Каковы достоинства применения Dependency Injection и как DI реализуется в Spring?