Принцип DIP из SOLID и Autowiring из DI-контейнеров?
Dependency injection - это когда в класс A мы передаем класс B через конструктор или сеттер, что бы он с ним работал, а не создавал его в своих нутрях.
Dependency Inversion - это когда мы в классе A работаем не с конкретной реализацией, а с интерфейсами: указываем интерфейсы в конструкторе, в методах, в возвращаемых типах и т.д.
Это два разных понятия, которые иногда объединяют в одно, и иногда их путают.
Так вот, autowiring - это про Dependency injection, а D в solid - это про Dependency Inversion. Одно другому не мешает и не нарушает.
У Вас 2 варианта:
1. Пытаетесь исправить чьи-то ошибки.
2. Думаете своей головой.

Я выбрал - 2-й.