2009-09-26 8 views
37

Quel est le cycle de vie d'un contrôleur dans Spring MVC?Cycle de vie du contrôleur au printemps MVC

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

Répondre

25

Voici une vue du cycle de vie:

http://www.flickr.com/photos/[email protected]/89101625/sizes/l/

Oui, ils sont partagés par des fils/demandes; vous devriez les écrire pour être thread-safe. 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 pour le niveau Web.

9

Tous les contrôleurs de Spring MVC sont singleton. Comme les autres beans singleton normaux, l'instance des contrôleurs sera créée après le début du contexte de l'application web et éliminée avant la fin de celle-ci.

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

Questions connexes