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.
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.
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.
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.
I controller sono solo bean, possono essere singleton o prototype, dipende da cosa si sta tentando di fare. Se si desidera utilizzare il prototipo, per impostazione predefinita sono singleton.
http://www.digizenstudio.com/blog/2006/10/09/spring-controllers-with-prototype-scope/