Жизненный цикл контроллера в Spring MVC
Каков жизненный цикл контроллера в Spring MVC?
Когда создается контроллер, когда он уничтожается? Разделяется ли он между несколькими потоками? Может ли он использоваться одновременно несколькими запросами.
Ответы
Ответ 1
Здесь вид жизненного цикла:
http://www.flickr.com/photos/[email protected]/89101625/sizes/l/
Да, они разделяются потоками/запросами; вы должны написать им, чтобы они были потокобезопасными. Они должны быть без гражданства. Обычно они ссылаются на службу Spring, которая выполняет всю работу. Контроллеры обрабатывают привязку, проверку и маршрутизацию для веб-уровня.
Ответ 2
Контроллеры - это просто beans, они могут быть одиночными или прототипами, это зависит от того, что вы пытаетесь сделать. Если вы хотите использовать прототип statefulness, по умолчанию они singleton.
http://www.digizenstudio.com/blog/2006/10/09/spring-controllers-with-prototype-scope/
Ответ 3
Все контроллеры Spring MVC являются одноточечными. Как и другие обычные синглтон beans, экземпляр контроллеров будет создан после начала контекста веб-приложения и расположен до его конца.
Даже вы указываете другую область (например, прототип) для определения контроллера bean, поскольку Spring имеет какой-то кеш для контроллеров для производительности, будет использоваться только первый приобретенный экземпляр контроллера.