Ответ
Нет, не может. GenericApplicationContext — это базовая, не веб-ориентированная реализация ApplicationContext. Он не содержит инфраструктуры для поддержки скоупов, зависящих от веб-запроса (request) или сессии (session).
Почему?
- Request scope требует привязки жизненного цикла бина к HTTP-запросу (
javax.servlet.http.HttpServletRequest). GenericApplicationContextне имеет доступа к контексту веб-приложения (например,ServletContext) и не управляет областью видимости запроса.
Решение: Используйте контекст, поддерживающий веб-функциональность, например AnnotationConfigWebApplicationContext или XmlWebApplicationContext (оба реализуют WebApplicationContext).
Пример объявления бина с request scope:
@Configuration
public class WebConfig {
@Bean
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public MyRequestScopedBean myBean() {
return new MyRequestScopedBean();
}
}