Angulars DI ist hierarchisch: Injektoren bilden einen Baum, der den Komponenten-/Modulbaum widerspiegelt. Wenn eine Komponente eine Abhängigkeit anfordert, geht Angular den Injektorebaum nach oben, bis sie einen Provider findet — der bestimmt, ob Sie eine geteilte Singleton-Instanz oder eine separate Instanz pro Komponente erhalten.
Warum es wichtig ist
Root injector (app-wide) ← providedIn: 'root' lives here (one singleton)
└─ Module/Route injectors
└─ Component injector ← providers: [...] in @Component
└─ Child component injector
