Dependency injection has been an integral part of many non-trivial applications, generally empowered by frameworks. It promotes decoupling to such an extend that applications are better extensible, maintainable, configurable and testable. It is generally considered only as a run-time facility because of its dynamic capability and convenience. …