Dependency injection is great as long as its internal working can be easily understood. I've worked with projects where dependency injection comes in various contexts (application scoped, request scoped ..) and there are always problems with that, sooner or later.