1. Il faut ajouter l'annotation @Injectable sur tous nos services.

    @injectable() => available only from the module where you declared the service
    @Injectable({providedIn: 'root'}) => the all app will share the same instance of the service. 
    Available for the all app
    
  2. Un service permet de factoriser et de centraliser du code qui peut être utile ailleurs dans l'application.

  3. On utilise l'injection de dépendances pour rendre un service disponible dans un composant.

    constructor(private monService: MonService) {}
    
  4. On ne gère jamais nous-mêmes les dépendances sur un composant ou un service, on passe toujours par l'injection de dépendances.

  5. L'injection de dépendance permet de garantir que l'instance de notre service est unique à travers toute l'application.

  6. On définit un fournisseur de service pour déterminer dans quelles zones de notre application notre service sera disponible.

  7. On peut fournir un service pour toute l'application, pour un module particulier ou pour un composant.