What do you mean by dependency injection and how does it work?
Dependency Injection or DI is a design pattern that implements inversion or change of control for resolving dependencies. It is a process through which objects define their dependencies. Transferring the task of creating objects to someone else and using the dependency is called dependency injection. It can be done in 2 ways: constructor-based DI and setter-based DI.