Spring MVC-controller-scope-Probleme
Hey, ich bin neu in Spring MVC, und ich brauche einige Ratschläge/Aufklärung.
Ich habe derzeit die Umsetzung einer MVC-Anwendung und ich bin zu kämpfen mit dem Umfang meiner Controller.
Ich scanne alle meine controller-Klassen über
<context:component-scan base-package="controller"/>
das ist IMHO eine sehr komfortable Art und Weise.
Ist es richtig, dass-Controller(standardmäßig oder gescannt in der oben beschriebenen Weise), werden singletons nur wie ein normaler bean? Wenn ja, alle membervariables meine controller sind geteilt zwischen mehreren Anfragen richtig? Kann ich dies ändern? Ich möchte eine request-scoped-Controller. Genau wie:
<bean id="infoController" class="controller.InfoController" scope="request">
<constructor-arg ref="sessionFactory"/>
</bean>
Gibt es irgendwelche Nebenwirkungen mit der Deklaration meinem Controller Bohnen? Oder ist es ein absolutes no-go zu erklären, wie diese? Oder sogar erklären, Sie als request-scoped?
Kann ich auch eine Kombination der beiden Möglichkeiten? so etwas wie:
<context:component-scan base-package="controller" scope="request"/>
Wie denken Sie Kerle, die Implementierung Ihres Controller und machen Sie zu "Anfrage speichern"?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen Sie das folgende für eine gute Zusammenfassung:
Muss Spring MVC Klassen Thread-Safe
Umfang der Feder-Controller und die Instanz-Variablen
Habe ich noch nie gefunden Grund zur Annahme, dass member-Variablen, die in meinem controller.
Beachten Sie, dass Ihr Controller sollte in der Regel ein dünner wrapper um die request-Verarbeitung. Logik sollte dann delegiert werden, um eine Dienstleistung, die wiederum nennen könnte eine repository - /DAO. Dann sollten Sie vermeiden, indem Sie Ihre session-Fabrik direkt an den controller und Transaktionen definiert, in der Service-Schicht.
Siehe hier für ein Beispiel (auch mit Spring-Daten reduziert ein Menge von boiler plate code um JPA/Hibernate).
http://fruzenshtein.com/spring-jpa-data-hibernate-mysql/