Spring Запрос и область прототипа?

Ниже приведены определения прототипа и области запроса в spring.

прототип  Обладает единственным определением bean для любого количества экземпляров объектов.

запрос  Обладает единственным определением bean для жизненного цикла одного HTTP-запроса; то есть каждый HTTP-запрос будет иметь свои собственные экземпляр bean, созданный с обратной стороны одного определения bean. Действителен только в контексте веб-приложения Spring ApplicationContext.

В соответствии с моим пониманием. В случае области прототипа некоторый пул будет поддерживаться контейнером ядра. Он будет обслуживать экземпляр bean из этого пула. В случае области запроса новый bean будет обслуживаться для каждого HTTP-запроса. Пожалуйста, исправьте меня, если в понимании есть какая-то неловкость?

Если вышеприведенные утверждения верны, то если bean содержит некоторое состояние, то область не должна определяться как прототип, а должна быть определена как запрос. Правильно?

Ответы

Ответ 1

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

"Неэлементный, прототипный объем bean результаты развертывания в создание нового экземпляра bean каждый время запроса для этого конкретного bean.

Ваше описание области запроса beans является точным.

Вероятно, только что получили проводы, пересекающиеся с прототипом vs singleton.

Ответ 2

Лучший, который я нашел в сети

Прототип создает новый экземпляр каждый раз, когда вы вызываете getBean в ApplicationContext. Если для запроса создается только один экземпляр для HttpRequest. Таким образом, в одном HttpRequest я могу дважды вызвать getBean в приложении, и будет только один экземпляр bean, тогда как тот же самый bean, охваченный Prototype в том же единственном HttpRequest, получит два разных экземпляра.

Область HttpRequest

Mark mark1 = context.getBean("mark"); 
Mark mark2 = context.getBean("mark"); 
mark1 == mark2; //This will return true 

Область прототипа

Mark mark1 = context.getBean("mark"); 
Mark mark2 = context.getBean("mark"); 
mark1 == mark2; //This will return false 

Надеюсь, что это очистит тебя.