One of the reasons I use Java is for type safety. What's the point when your app compiles OK but then doesn't start because Spring can't satisfy all the dependencies or choose which one. I spend hours trying to get the config right. You end up programming via config.
My experience is that it's "fire and forget"; never give it much of a thought at all and isn't much different from:
Except that DI allows "importing" at different levels.