Was bedeutet die Definition des Gültigkeitsbereichs für Beans mit den Werten Singleton und Prototype in Spring, und wie beeinflusst dies ihr Verhalten?
sobes.tech KI
Antwort von AI
In Spring definiert der Sichtbarkeitsbereich (Scope) eines Beans die Lebensdauer und Sichtbarkeit der Bean-Instanz.
-
singleton — ist der Standardbereich. Jedes Mal, wenn eine Bean mit diesem Scope angefordert wird, gibt Spring während des gesamten Lebenszyklus des Containers dieselbe Instanz zurück. Das bedeutet, dass die Bean einmal erstellt wird und wiederverwendet wird.
-
prototype — bei jeder Anforderung wird eine neue Instanz der Bean erstellt. Spring verwaltet den Lebenszyklus dieser Beans nach ihrer Erstellung nicht, daher gibt jeder Aufruf von
getBeanein neues Objekt zurück.
Auswirkungen auf das Verhalten:
- Singleton-Beans sparen Ressourcen und bieten einen gemeinsamen Zustand für alle Nutzer.
- Prototype-Beans sind nützlich, wenn eine neue Instanz mit unabhängigem Zustand für jeden Gebrauch benötigt wird.
Beispiel:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// jeder Aufruf von getBean erstellt ein neues Objekt
}
@Component
@Scope("singleton")
public class MySingletonBean {
// ein Objekt für den gesamten Container
}
Daher beeinflusst die Wahl des Scope, wie und wann Objekte erstellt werden und wie lange sie in der Anwendung leben.