栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在SpringBoot中配置RequestContextListener

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在SpringBoot中配置RequestContextListener

如更新/评论中所述,这是我自己的愚蠢造成的。

Spring-Boot能够将Request /
Session范围内的Bean自动连接到超出

DispatcherServlet
Spring文档范围的过滤器中。根据Spring的文档,我们需要添加
RequestContextListener
RequestContextFilter
来启用此功能:

为了在请求,会话和全局会话级别(网络范围的Bean)支持Bean的作用域,在定义Bean之前,需要一些较小的初始配置。(对于标准示波器,单例和原型,不需要此初始设置。)…

实际上,如果您在Spring Web MVC中访问由Spring
DispatcherServlet或DispatcherPortlet处理的请求中的作用域Bean,则无需进行特殊设置:DispatcherServlet和DispatcherPortlet已经公开了所有相关状态。

为了解决这个问题,我需要注册一个RequestContextListener bean:

@Bean public RequestContextListener requestContextListener(){    return new RequestContextListener();}

如果您不注册该bean,则会收到一条错误消息,指出您试图访问DispatcherServlet之外的Request范围。

我遇到的问题(只是没有插入自动装配的对象)是由于我只是将自定义过滤器注册为标准类实例而不是Spring托管bean而引起的:

http.addFilterBefore( new PreAuthFilter(), BasicAuthenticationFilter )

为了解决这个问题,我只是将创建的方法

PreAuthFilter
移到了单独的
@Bean
方法上,
@Autowired
然后该功能运行良好。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/385886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号