如何使用无 xml 配置添加 RequestContextListener?
Posted
技术标签:
【中文标题】如何使用无 xml 配置添加 RequestContextListener?【英文标题】:How to add a RequestContextListener with no-xml configuration? 【发布时间】:2016-11-07 05:49:35 【问题描述】:我需要在我的 Spring Boot 应用程序中添加一个监听器,在 web.xml 中它看起来像
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
我使用 no-web.xml 配置,所以我有一个类似的类
public class AppFilterConfig extends AbstractAnnotationConfigDispatcherServletInitializer
@Override
protected Filter[] getServletFilters()
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF8");
filter.setForceEncoding(true);
Filter[] filters = new Filter[1];
filters[0] = filter;
return filters;
private int maxUploadSizeInMb = 5 * 1024 * 1024; // 5 MB
@Override
protected Class<?>[] getRootConfigClasses()
return null;
@Override
protected Class<?>[] getServletConfigClasses()
return null;
@Override
protected String[] getServletMappings()
return new String[]"/";
@Override
protected void registerDispatcherServlet(ServletContext servletContext)
super.registerDispatcherServlet(servletContext);
servletContext.addListener(new HttpSessionEventPublisher());
@Override
public void onStartup(ServletContext servletContext) throws ServletException
super.onStartup(servletContext);
servletContext.addListener(new RequestContextListener());
从上面的代码中可以看出,我在 onStartup(ServletContext servletContext) 方法中添加了一个监听器,但它没有帮助,因为我仍然得到 p>
In this case, use RequestContextListener or RequestContextFilter to expose the current request.
这条消息。如何正确地将侦听器添加到我的 Spring Boot 应用程序?
【问题讨论】:
你为什么需要这个?RequestContextListener
(或过滤器)的功能已经是DispatcherServlet
的一部分。但是,您的配置也是错误的,因为您没有加载任何配置类(您的 rootConfigClasses
和 servletConfigClasses
返回 null
导致没有加载任何内容)。
谢谢@M.Deinum,我正在解决这个问题:***.com/questions/35875098/…
【参考方案1】:
我创建了这个类,这解决了我的问题。
@Configuration
@WebListener
public class MyRequestContextListener extends RequestContextListener
【讨论】:
【参考方案2】:编写您自己的从RequestContextListener
扩展的监听器类并通过注解注册它。像这样的:
@WebListener
public class MyRequestContextListener extends RequestContextListener
【讨论】:
感谢补充。很高兴能提供帮助。以上是关于如何使用无 xml 配置添加 RequestContextListener?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用无 XML 的 Spring Web 应用程序设置 JBoss Wildfly 上下文根?
spring boot+mybatis注解使用方式(无xml配置)设置自动驼峰明明转换(),IDEA中xxDao报错could not autowire的解决方法