springBoot过滤器注入Bean的空指针问题

本文介绍了如何解决SpringBoot过滤器在注入Bean时出现的空指针问题。通过创建SpringContextUtil工具类,并在SpringBoot启动类中注入applicationContext,然后在业务代码中利用工具类获取Bean,从而避免空指针异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在过滤器中的doFilterInternal写业务代码时,需要用到spring bean组件,发现在过滤器中无法初始化bean组件,均为NullpointException,经检查扫描包路径没问题。最终确定容器加载顺序引发的问题,在web.xml中各个元素的执行顺序是这样的,context-->param-->listener-->filter-->servlet可以看出在spring MVC 的dispatcherServlet初始化之前过滤器就已经加载好了,所以注入的是null。

  解决思路是doFilterInternal使用spring上下文取获取相应的bean组件,对于Spring Boot我们可以使用以下步骤来解决

  第一步:创建上下文工具类SpringContextUtil

@Component
public class SpringContextUtil implements ApplicationContextAware {

    private static ApplicationContext context = null;

   
    //设置上下文
    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        SpringContextUtil .context = applicationContext;
    }

    //获取上下文
    public st
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值