Всем здравствуйте. Правильно, ли я понимаю, что цель dependency injection - централизовать инициализацию объектов в каком-то одном месте, как например в xml файле с бинами, если рассматривать Spring Core ?
То есть, когда в проекте миллион пакетов и соответственно миллион классов, очень неудобно рыскать по всему проекту, чтобы подсунуть какому-либо классу иную от текущей реализации класса, скажем, чтобы протестировать что-то или просто поменять поведение системы, гораздо лучше, когда для это есть специальный единый конфиг файл.
Есть ли ещё какие-либо проблемы, которые решает DI ?