@Singleton vs @ApplicationScope

Für ein Projekt benötige ich eine eindeutige ID generator. So dachte ich über ein Singleton mit synchronisierten Methoden.

Da ein Singleton nach der traditionellen Singleton-Muster (private static instance) gemeinsam auf Sitzungen, Frage ich mich, ob die @Singleton Annotation ist die Arbeit die gleiche Weise?

In der Dokumentation sagt: Identifies a type that the injector only instantiates once.

Bedeutet es, dass ein @Singleton unabhängig pro User Session (was schlecht ist für ein id-generator)? Sollte ich lieber eine old school Singleton mit Class.getInstance() über eine Injektion einer @Singleton-Bean?

Oder sollte ich weder noch und bieten den Service, innerhalb einer @ApplicationScoped bean?

es musst garantiert werden, dass nur EIN thread, unabhängig von der Benutzer-session zugreifen können, die Methode zum generieren der nächsten id. (Es ist nicht lösbar mit auto-Inkrement-Datenbank-ids)

Edit: JSF 2.2, CDI und javax.inject.* ich Rede 🙂

InformationsquelleAutor dognose | 2014-11-09
Schreibe einen Kommentar