There, I said it.
I can see how autowiring can seem like a cute way to wire interfaces to concrete implementations but , no matter how hard I try, I just like it. I’d go so far to classify the concept as a code smell. I can see how autowiring is useful for situations where there is a 1:1 mapping between the interface and implementation, or bean instances but beyond that, it’s just another way to create complexity. There’s always the option of using @Qualifier() but that’s missing the point.