Dependency Injection is both great and horrible.
Once it's up and running, dependent code can go quickly.
But may the gods have mercy on your soul if something goes wrong in the black box that is DI.
"Oh please if you can't take a bloody nose go crawl back in bed!
"It's not SAFE using DI: it's wonderous, with treasures to satiate desires both subtle and gross...
"but, it's not for the timid!"
@XSGeek - and then there's Java's unholy spring framework where it's configured in XML, complete with logic, string parsing, and calls to some, but not all, java functions.