🚀 Spring Boot Basic - Tag 7

Scopes in Spring: Singleton, Prototype, Request, Session & Application

Java Fleet Systems Consulting

Was sind Scopes?

Scopes in Spring bestimmen, wie lange eine Bean-Instanz lebt und wie viele Instanzen Spring erstellt. Das ist super wichtig für Performance, Memory-Management und Thread-Safety!

🎯 Verfügbare Scope-Demonstrationen

🔵

Singleton Scope

Standard in Spring!

Eine Instanz für die gesamte Anwendung. Wird beim Start erstellt und von allen geteilt.

Default Thread-Safe nötig
Demo starten
🟢

Prototype Scope

Immer neu!

Neue Instanz bei jedem getBean()-Aufruf. Jede Instanz ist unabhängig.

Stateless Keine Shared State
Demo starten
🟡

Request Scope

Pro HTTP-Request

Eine Instanz pro Request. Wird danach verworfen. Perfekt für request-spezifische Daten!

Web only Pro Request
Demo starten
🟣

Session Scope

Pro User-Session

Eine Instanz pro Session. Bleibt erhalten während der Session. Perfekt für User-Daten!

Web only Pro User
Demo starten
🔴

Application Scope

Globaler ServletContext

Eine Instanz für die gesamte Web-App, geteilt über alle Sessions. Ähnlich wie Singleton.

Web only Global
Demo starten
📊

Scope Vergleich

Alle auf einen Blick

Vergleiche alle Scopes gleichzeitig und sieh den Unterschied in Aktion!

Übersicht
Vergleich anzeigen

📚 Quick Reference

Scope Instanzen Lebensdauer Use Case
Singleton 1 pro Container Container Lifetime Services, Repositories, Stateless Beans
Prototype Neu bei jedem getBean() Bis GC Stateful Objekte, Commands
Request 1 pro HTTP Request Request Lifetime Request-spezifische Daten
Session 1 pro HTTP Session Session Lifetime User-Daten, Shopping Cart
Application 1 pro ServletContext Application Lifetime Global Counters, Caches

💡 Pro-Tipp

Die meisten Beans sollten Singleton sein! Das ist performant und macht Sinn für stateless Services. Nutze andere Scopes nur, wenn du sie wirklich brauchst.

Wichtig: Web-Scopes (Request, Session, Application) benötigen proxyMode = TARGET_CLASS wenn sie in Singleton-Beans injected werden!