Жизненный цикл контроллера в Spring MVC

Это старый пост, но если кто-то наткнулся на него, как и я, - вот еще одна хорошая ссылка для ссылки .. http://csharpindepth.com/Articles/Chapter2/Events.aspx

вкратце, отвлечься от статьи. События - это инкапсуляция над делегатами. Цитата из статьи -

«Предположим, что события не существовали как концепция в C # /. NET. Как другой класс подписался бы на событие?

Три варианта:

  1. public delegatevariable
  2. переменная делегата, поддерживаемая свойством
  3. делегата с помощью методов AddXXXHandler и RemoveXXXHandler

Опция 1 явно ужасен, по всем обычным причинам мы ненавидим публичные переменные.

Вариант 2 лучше, но позволяет подписчикам эффективно переопределять друг друга - было бы слишком легко написать someInstance.MyEvent = eventHandler; который заменит любые существующие обработчики событий, а не добавит новый. Кроме того, вам все равно нужно написать свойства.

Вариант 3 - это в основном то, что события дают вам, но с гарантированным соглашением (сгенерированным компилятор и подкрепляется дополнительными флагами в IL) и «бесплатной» реализацией, если вы довольны семантикой, которую дают вам события, подобные полям. Подписывание и отказ от подписки ng из событий инкапсулируется без разрешения произвольного доступа к списку обработчиков событий, а языки упрощают работу, предоставляя синтаксис как декларации, так и подписки ».

blockquote>

37
задан flybywire 26 September 2009 в 19:32
поделиться

3 ответа

Вот вид жизненного цикла:

http://www.flickr.com/photos/ 60896767 @ N00 / 89101625 / sizes / l /

Да, они разделяется по потокам / запросам; вы должны написать их для обеспечения многопоточности. Они не должны иметь гражданства. Обычно у них есть ссылка на службу Spring, которая выполняет всю работу. Контроллеры обрабатывают привязку, проверку и маршрутизацию для веб-уровня.

25
ответ дан 27 November 2019 в 04:54
поделиться

Controllers are just beans, they can be singleton or prototype, it depends on what you are trying to do. If you want statefulness use prototype, by default they are singleton.

http://www.digizenstudio.com/blog/2006/10/09/spring-controllers-with-prototype-scope/

14
ответ дан 27 November 2019 в 04:54
поделиться

Все контроллеры Spring MVC одноэлементные. Как и другие обычные одноэлементные компоненты, экземпляры контроллеров будут созданы после начала контекста веб-приложения и удалены до его завершения.

Даже если вы укажете другую область (например, прототип) для определения компонента контроллера, потому что Spring имеет какой-то вид кэш для контроллеров для повышения производительности, повторно будет использоваться только первый полученный экземпляр контроллера.

9
ответ дан 27 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: