Каждый Scope
имеет свою собственную реализацию, которая знает, как и где хранятся объекты.Область запроса, реализованная с помощью RequestScope
, сохраняет объект в атрибутах запроса (см. sources ).
Что делает Spring, когда находит bean-объект области действия(т. е. bean-компонент с @Scope
или специальной аннотацией, такой как @RequestScope
, @SessionScope
), предназначен для создания прокси этого объекта.Прокси-сервер выполнит поиск фактического экземпляра объекта (или создаст его и сохранит), используя ранее упомянутый экземпляр Scope
.Затем он передаст вызов метода фактическому экземпляру.
Вы можете проверить это, посмотрев bean-компонент с областью действия @Autowired
, и вы увидите, что это на самом деле прокси, а не реальный экземпляр.
Текущий запрос доступен весной через RequestContextHolder
.