Was ist der Prototyp Spring-Bean verwendet?
Standardmäßig wird die Bean erstellt von Frühling ist singleton. Sie sind thread-sicher, da Sie zustandslos sind. Wenn wir wollen Frühling zum erstellen einer stateful Bean, müssen wir mit Prototypen-Bereich für die Bean-definition. Wir brauchen zu kümmern, die thread-safe-Probleme für Sie. Alle stateless Bean wird verschmutzt werden, wenn Sie injiziert werden, indem der Prototyp bean. Also, ich kann einfach nicht dem Bild, wo können wir die Prototyp-Rahmen. Können Sie geben einige typische Szenario, dass wir können /müssen mit Prototypen-Spring-Bean? Auch, wie können wir leere stateful Verschmutzung auf andere singleton-beans?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt viele Gründe für die Verwendung der Prototyp-Rahmen, z.B., zu jeder Zeit, die Sie verwenden würden, "neue" anstelle der Verwendung eines singleton. Eine pro-user-bean, einer pro-Anfrage-bean, eine einzigartige Sammlung von Bohnen, etc. Denn in jeder nicht-trivialen Anwendung nicht Sie mit nicht-singletons weit mehr als singletons?
Singleton-scoped beans sind nicht thread-sicher, einfach nur weil Sie singletons–, Sie werden müssen geschrieben werden, um thread-sicher. Sie werden nicht thread-sicher magisch an. Eine bean-scope ist nur, dass der Anwendungsbereich der Richtlinie: es stört nicht die Bohne entsprechenden für den jeweiligen Geltungsbereich–, die bis an den Entwickler.
Ich sehe Prototyp-scoped beans als alternative zum factory-Klassen verwendet, um Objekte zu erstellen. Der Unterschied ist im Falle der Prototyp Bohnen Frühjahr sparen Sie einige code für dependency injection, und wird auch automatisch Ihre proxy-Objekte für Transaktionen etc. wenn es angebracht ist.
Ich mich lieber den factory-Ansatz. Eine vernünftige Szenario für die Prototypen-Rahmen, den ich gestoßen war ein statusbehaftetes Objekt erforderlich von verschiedenen bekannten Bohnen-und jeder benötigt seine eigene Kopie. Eine dedizierte factory-Klasse überflüssig wäre in diesem Szenario, da ich nicht brauchen, um Objekte zu erstellen, on the fly, aber nur bei anderen Bohnen " Instanziierung.