Spring @Controller жизненный цикл - PullRequest
1 голос
/ 14 апреля 2011

Я новичок в Spring MVC и хотел бы знать, как он обрабатывает запросы, а именно:

  1. Я хотел бы знать, как жизненный цикл Spring @ Controller связан с жизненным циклом сервлета?
  2. Я также хотел бы лучше понять, каковы лучшие практики для многопоточных сред (например, как в сервлетах, атрибуты класса видны для нескольких запросов HTTP, когда объекты повторно используются из пула)?

1 Ответ

6 голосов
/ 14 апреля 2011

Контроллер (как любой пружинный компонент) имеет область действия.

В лучшем случае ваши контроллеры должны иметь область действия singleton.В этом случае это очень похоже на сервлеты, и:

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

Если область вашего контроллера равна request или session, то вы можете иметь переменные экземпляра, и экземпляр контроллера будет созданна каждый новый запрос / сессию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...