2009-09-26 4 views
37

Qual è il ciclo di vita di un controller in Spring MVC?Durata del controller in primavera MVC

Quando viene creato il controller, quando viene distrutto? È condiviso tra più thread? Può essere utilizzato contemporaneamente da più di una richiesta.

risposta

25

Ecco una vista del ciclo di vita:

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

Sì, sono condivisi da fili/richieste; dovresti scriverle per essere thread-safe. Dovrebbero essere apolidi. Di solito hanno un riferimento a un servizio di primavera che fa tutto il lavoro. I controller gestiscono l'associazione, la convalida e il routing per il livello Web.

9

Tutti i controller di Spring MVC sono singleton. Come altri normali bean singleton, l'istanza dei controller verrà creata dopo l'avvio del contesto dell'applicazione Web e eliminata prima della fine di esso.

Anche se si specifica un altro ambito (ad esempio prototipo) per la definizione del bean controller, poiché spring dispone di un tipo di cache per i controller per le prestazioni, verrà utilizzata ripetutamente solo la prima istanza del controller acquisita.