Вот объяснение областей применения Spring bean с соответствующими примерами:
Прототип
Что-> каждый раз для каждого запроса он предоставляет различный экземпляр
Когда ваш бин содержит состояние (т.е. атрибуты объекта), которое вы хотите сохранить изолированным, и вы хотите быть уверенным, что оно не будет повторно использовано при следующем запросе
Запрос
Что-> каждый раз для каждого HTTP-запроса он предоставляет различный экземпляр, доступный только в контексте веб-приложения
Когда-> ваш бин моделирует входящую сущность (т. Е. Объект Product), которая вам нужна захватить и обработать в этом веб-запросе
Сеанс
Что-> он предоставляет разные экземпляры для каждого сеанса HTTP, доступные только в контексте веб-приложения
Когда -> локальное кэширование, связанное с указанным c пользователем, например ShoppingBasket или UserSession, вы обычно называете это приложением с состоянием