Object Pool
Ein Object Pool ist eine Sammlung von vorinstanziierten Objekten, die wiederverwendet werden.
In Jakarta EE nutzt @Stateless einen Pool von Bean-Instanzen.
I. Wofür?
Statt für jeden Request eine neue Bean zu erstellen, hält der Container N Instanzen bereit und reicht sie bei Bedarf raus.
II. Visualisierung
HelloBean-Pool:
┌─────┐ ┌─────┐ ┌─────┐
│ B1 │ │ B2 │ │ B3 │ ... (alle gleichwertig)
└─────┘ └─────┘ └─────┘
↑ ↑
Thread1 Thread2 (parallel, keine Wartezeit)
III. Konsequenz für mich
- Bei @Stateless: niemals Member-State mit User-Daten füllen — die nächste Anfrage könnte eine andere Instanz erwischen (oder dieselbe mit alten Werten)
- Bei @Singleton: kein Pool (nur 1 Instanz)
- Bei @Stateful: kein Pool (1 pro Client)