Dependency injection - это когда в класс A мы передаем класс B через конструктор или сеттер, что бы он с ним работал, а не создавал его в своих нутрях.
Dependency Inversion - это когда мы в классе A работаем не с конкретной реализацией, а с интерфейсами: указываем интерфейсы в конструкторе, в методах, в возвращаемых типах и т.д.
Это два разных понятия, которые иногда объединяют в одно, и иногда их путают.
Так вот, autowiring - это про Dependency injection, а D в solid - это про Dependency Inversion. Одно другому не мешает и не нарушает.