To retrieve object instances defined by the provider, instantiate types, invoke methods, and load modules injector is used. It defines a class as a service in Angular and will allow Angular to inject it into a component as a dependency.
The @Injectable decorator is optional if you use the 'providedIn' option. The @Injectable decorator and the 'providedIn' option is the service that should not be added within the providers' array of a module. The main difference between the injector and injectable is that we use the @Inject parameter decorator to instruct Angular that we want to fix a token and inject a dependency into a constructor. We use the @Injectable class decorators to automatically improve and inject all the class constructor parameters.
- Constructor injection: it provides the dependencies through a class constructor.
- Setter injection: The client will use a setter method into which the injector injects the dependency.
Here is an example of how to use an injector within a service in Angular: