Dependency injection is an idea that looks nice in theory, but it soon becomes pretty messy in practice. Without DI it is in general not too difficult to debug how an object is created. With DI you will also have to debug through the DI code. Fixing problems with DI configurations is one of my least favorite activities.