2010-11-22 13 views
0

Je suis plutôt nouveau au printemps et je me demandais juste si quelqu'un serait en mesure d'éclaircir quelque chose pour moi. Ce que je me demande, c'est quelle est la portée d'une application web printemps mvc. Est-ce que les utilisateurs obtiennent une nouvelle instance de l'application quand ils l'utilisent ou est-ce comme un singleton où tout le monde obtient la même instance de l'application? Par exemple, si je stocke des données dans un contrôleur auquel l'utilisateur 1 a accédé et que l'utilisateur 2 arrive et commence à utiliser l'application Web, l'utilisateur 2 verra-t-il les données de l'utilisateur 1 ou est-ce des instances entièrement distinctes?Question conceptuelle concernant la portée de l'application

J'ai essayé de trouver une réponse à cela mais sans succès. J'ai lu sur les différents états de bean dans une application mais n'ai rien trouvé sur l'application elle-même.

Toute idée est très apprécié, HarleyQ14

+0

Je crois comprendre que dans votre description, l'utilisateur 2 ne pourra PAS voir les données de l'utilisateur 1. – bakoyaro

Répondre

1

L'application Spring MVC est un singleton. Chaque utilisateur accède à la même application. Agir autrement serait paralysant pour la performance et l'évolutivité. Lorsque vous dites "Je stocke des données dans un automate", voulez-vous dire stocker des données relatives à une demande ou à une session dans le champ de l'objet contrôleur? Si c'est le cas, le comportement par défaut de Spring vous causera des problèmes, puisque tout est partagé.

Si vous souhaitez disposer de telles instances de contrôleur de requête ou de session privée, pensez à utiliser scoped beans.

+0

Merci beaucoup Skaffman, c'était exactement ce que je cherchais. –