Sobes.tech
Junior — Middle

Was ist der Unterschied zwischen dem Gültigkeitsbereich Singleton und Prototype im Kontext der Dependency Injection?

sobes.tech KI

Antwort von AI

Im Kontext der Dependency Injection bestimmt der Scope (Gültigkeitsbereich) den Lebenszyklus und die Anzahl der erstellten Objektinstanzen.

  • Singleton: Das Objekt wird einmal während des gesamten Lebenszyklus der Anwendung oder des DI-Containers erstellt. Alle Anfragen an diese Abhängigkeit erhalten die gleiche Instanz. Dies ist praktisch für Dienste, die Zustand speichern oder gemeinsam genutzt werden sollen.

  • Prototype: Bei jeder Anfrage wird eine neue Instanz des Objekts erstellt. Dies ist nützlich, wenn ein unabhängiges Objekt mit eigenem Zustand benötigt wird.

Beispiel:

// Singleton Scope
@Component
@Scope("singleton")
public class MyService {
    // eine Instanz für die gesamte Anwendung
}

// Prototype Scope
@Component
@Scope("prototype")
public class MyPrototypeService {
    // neue Instanz bei jeder Anfrage
}

Auf diese Weise sorgt Singleton für eine einzige Instanz, während Prototype mehrere unabhängige Instanzen bereitstellt, was die Zustandsverwaltung und die Leistung der Anwendung beeinflusst.