Пружинный впрыск и создание объекта - PullRequest
1 голос
/ 13 апреля 2011

Я пытаюсь лучше понять весеннее создание бобов. Чтобы проиллюстрировать мои сомнения, давайте предположим, что у нас есть класс Service, подключенный к контроллеру, вот вопросы:

  1. Как Spring будет управлять жизненным циклом контроллера? Будет ли новый объект быть создан за запрос?
  2. После того, как Сервис создан и подключен к контроллеру, будет весна повторно использовать этот объект ссылки на провод это к другим бобам?

Ответы [ 3 ]

3 голосов
/ 13 апреля 2011
  1. Как и сервлеты, жизненный цикл контроллеров выходит за рамки запросов.Все контроллеры в приложении создаются только один раз при запуске приложения;впоследствии эти объекты повторно используются для обслуживания всех запросов.
  2. Как указал Божо, по умолчанию все компоненты находятся в одноэлементной области видимости, поэтому они будут использоваться везде, если не указано иное.
1 голос
/ 13 апреля 2011

Область по умолчанию - singleton, что означает повторное использование bean-компонентов (т.е. 1) нет, новый объект не будет создаваться для запроса, и 2) да, ссылка на объект будет использоваться повторно).

Это все можно настроить. Посмотрите на http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes.

0 голосов
/ 13 апреля 2011

Все зависит от объема бина.По умолчанию все компоненты находятся в одноэлементной области, то есть они создаются контейнером только один раз.

Если вы укажете @Scope("request") (или эквивалент в xml), тогда будет добавлен тот же сервисный объект (singleton)во всех случаях контроллера области запроса.(Но вам редко нужны контроллеры в области запроса)

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