开发者社区 问答 正文

spring boot 如何配置RequestContextListener - java报错

如题,我想在初始化完成后加载一些数据到当前内存里,但是spring boot里好像没办法配置RequestContextListener,我的配置如下:

@Configuration
public class Listener {
        @Bean
        public ServletListenerRegistrationBean<EventListener> getDemoListener(){
            ServletListenerRegistrationBean<EventListener> registrationBean
                                       =new ServletListenerRegistrationBean<>();
            registrationBean.setListener(new RequestContextListener());
    //        registrationBean.setOrder(1);
            return registrationBean;
        }
}

Java获取如下:

    ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

一直是空指针,没办法获取HttpServletRequest

 

 

 

展开
收起
montos 2020-05-29 23:08:21 791 分享 版权
1 条回答
写回答
取消 提交回答
  • @Bean public ServletListenerRegistrationBean<RequestContextListener> servletListenerRegistrationBean(){ ServletListenerRegistrationBean<RequestContextListener> servletListenerRegistrationBean = new ServletListenerRegistrationBean<RequestContextListener>(); servletListenerRegistrationBean.setListener(new RequestContextListener()); return servletListenerRegistrationBean; } @Bean(name="SpringUtil") public SpringUtil mySpringUtil(){ SpringUtil su = new SpringUtil(); return su; }######package cn.com.tiptop.common.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; public class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; public static ApplicationContext getApplicationContext() { return applicationContext; } @Override public void setApplicationContext(ApplicationContext arg0) throws BeansException { applicationContext = arg0; } public static Object getBean(String id) { Object object = null; object = applicationContext.getBean(id); return object; } }

    2020-05-29 23:08:36
    赞同 展开评论