web-dev-qa-db-fra.com

Cycle de vie du contrôleur au printemps MVC

Quel est le cycle de vie d'un contrôleur au printemps mvc?

Quand le contrôleur est-il créé, lorsqu'il est détruit? Est-il partagé parmi plusieurs threads? Peut-il être utilisé simultanément par plus d'une demande.

37
flybywire

Voici une vue du cycle de vie:

http://www.flickr.com/photos/60896767@n00/89101625/size/l/

Oui, ils sont partagés par des threads/demandes; Vous devriez les écrire pour être en sécurité. Ils devraient être apatrides. Habituellement, ils ont une référence à un service de printemps qui fait tout le travail. Les contrôleurs gérent la liaison, la validation et le routage du niveau Web.

25
duffymo

Les contrôleurs ne sont que des haricots, ils peuvent être singletons ou prototypes, cela dépend de ce que vous essayez de faire. Si vous voulez que le prototype d'utilisation de l'état, ils sont par défaut, ils sont singleton.

http://www.digizenstudio.com/blog/2006/10/09/spring-contrôleurs-with-Prototype-scope/

14
Mainguy

Tous les contrôleurs du printemps MVC sont Singleton. Comme d'autres haricots singletons normaux, l'instance de contrôleurs sera créée après le début du contexte de l'application Web et disposée avant la fin de celui-ci.

Même vous spécifiez une autre portée (par exemple, prototype) pour la définition de haricot du contrôleur, car le ressort a une sorte de cache pour les contrôleurs de performance, seule la première instance acquise du contrôleur sera utilisée à plusieurs reprises.

9
user179633