Использование прототипа с помощью Spring для обслуживания фасада и ярусов - PullRequest
0 голосов
/ 17 августа 2011

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

У меня есть несколько основных вопросов по этому поводу:

1) С точки зрения архитектуры, когда имеет смысл использовать bean-объекты с прототипом в типичном веб-приложении J2EE (Spring MVC / Hibernate)или JDBC шаблон доступа к БД)?

2) Существует ли концепция создания пула таких экземпляров-прототипов, аналогичного пулу, который сервер EJB будет делать с сеансными компонентами без сохранения состояния?

3) Должен ли фасад службы (чтоаналогично Session Facade в EJB) с прототипом и будет ли это помогать в обработке параллельных запросов, поступающих с веб-уровня?И как мне контролировать количество создаваемых экземпляров (ограничить определенным управляемым числом и, желательно, объединить их)?

1 Ответ

1 голос
/ 17 августа 2011

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

вам понадобятся прототипы для таких вещей, как действия запроса (например, в структурах), поэтому создается новый объект для обработки каждого из них.запрос.Эти прототипы могут быть подключены к одноэлементным сервисам.

из документации :

Не-одноэлементная прототипная область развертывания bean-компонентов приводит к созданиюновый экземпляр компонента каждый раз, когда делается запрос для этого конкретного компонента.Таким образом, компонент вводится в другой компонент или вы запрашиваете его с помощью вызова метода getBean () для контейнера.Как правило, используйте область прототипа для всех bean-компонентов с состоянием и одноэлементную область для bean-компонентов без состояния.

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