Frühling "session" scope einer bean
Scheint es mir, dass "session" scope ist ein weiteres Mittel, damit die Objekte in die session
mit setAttrubute /getAttribute
Richtig?
Wissen Sie, weiß nicht, warum, es funktioniert nicht für mich.
<bean id="sabreUser" class="util.MyUser" factory-method="getSomeUser" scope="session">
<const args...>
Was ich sehe, ist, dass nach der Initialisierung und erstmaligen bereitstellen der MyUser Eigenschaften korrekt sind.
Dann in die erste session, die ich ändern MyUser Eigenschaft, die Sitzung ist geschlossen.
Die zweite session läuft und es sieht den zuletzt eingestellten Wert aus der vorherigen Sitzung!
Was bedeutet das?
Ich erwarte, dass dieses Objekt initialisiert werden, wenn eine neue Sitzung startet. Aber es ist besser aussieht als singleton, wenn Sie sehen - "session" - Attribut gesetzt ist.
Sehe ich die Ursache des Problems in einen Servlet-Container werden die Felder initialisiert, die mit @Autowired
also, sobald es initialisiert wird, jeder anderen Sitzung, der Felder und nicht "ReWire" - diese Eigenschaften. Es einmal passiert? Wie dieses problem zu überwinden?
- wo sind diese Methoden setProperty / getProperty ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Spring session nicht genau die HttpSession, und auch die Spring-Dokumentation auf der @SessionAttributes Anmerkung sagt, dass es vielleicht in der session gespeichert oder "Klartext-Speicherung". Ich habe welche aus Der Frühling docs für 2,5
Ich habe im Grunde aufhören zu versuchen, Sinn zu machen, und habe mit meinem Leben, wenn ich etwas will, gespeichert in der HttpSession, ich habe nur die Feder injizieren die HttpSession zu mir, vorausgesetzt, Sie sind mit Spring MVC, seine ziemlich einfach, die Anweisungen auf der gleichen Seite.
Session-scoped beans sind Bohnen, das Leben in der http-session. Sie sind in der session gespeichert, die über
setAttribute
in gewisser Weise.So - ja.
Session-scoped beans gespeichert sind, die in Http-Session durch das Spring-framework. Dieser Bereich ist nur gültig im Zusammenhang mit Web-Anwendung.Es funktioniert auch für Portlet-envionments . Bei Verwendung im Portlet-Umgebung gibt es zwei Vorstellungen von der Sitzung, Anwendungsbereich und portlet scope (default).