【发布时间】:2022-01-02 21:38:10
【问题描述】:
我正在使用springBootVersion = '2.5.4' 并尝试自动装配以下组件:
@Component
@RequestScope
public class TokenDecodingService {
@Autowired
HttpServletRequest httpServletRequest;
/* Some logic with request */
}
进入我的控制器
@RestController
@Slf4j
//@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class DrupalEnhancedController {
@Autowired
TokenDecodingService tokenDecodingService;
....
}
在调试期间,我看到我收到了 No Scope registered for scope name 'request' 异常。每个网络感知范围都存在同样的问题。
首先,我认为我使用了错误的应用程序上下文,但我发现我使用的是 AnnotationConfigReactiveWebServerApplicationContext,并且此上下文应该接受 bean/组件的 Web 感知范围。
我也尝试在这样的 bean 中定义这个逻辑:
@Bean
@RequestScope
public TokenDecodingService tokenDecodingService() {
return new TokenDecodingService();
}
并尝试手动定义上下文监听器:
@Bean
public RequestContextListener requestContextListener(){
return new RequestContextListener();
}
但不幸的是,我没有通过这种方式取得任何进展。 我认为这里的根本原因是缺少 Web 感知上下文,那么我该如何启用它们呢?
【问题讨论】:
标签: java spring spring-boot spring-mvc web