По умолчанию все управляемые компоненты Spring имеют область действия singleton
. Таким образом, во второй реализации Spring будет создан только один объект UserResource
, и он будет предоставляться каждый раз, когда должен выполняться запрос на указанный URL.
Однако в первой реализации, поскольку вы аннотируют UserResource
с помощью @RequestScope
, Spring создаст новый объект контроллера для обслуживания каждого запроса. Это означает, что любая информация о состоянии, которую вы можете поддерживать в UserResource
, будет потеряна. Все переменные-члены UserResource
также будут создаваться заново для каждого запроса.
Хотя мне любопытно, почему вы хотите, чтобы контроллер имел область действия запроса? Не могли бы вы поделиться своим вариантом использования, если возможно?
Вот хорошая статья по этой теме: Spring Bean Scopes