阿昌教你解决Filter过滤器@Autowired注入调用为null的问题
阿昌在开发需求时,配置过滤器Filter的时候,使用到自己注入的Service类,但是会出现爆空指针的异常
记录自己的问题如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/4995354084244e4fb53258497ba0b685.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Zi_5piM5Zac5qyi5ZCD6buE5qGD,size_14,color_FFFFFF,t_70,g_se,x_16)
那肯定盲猜就是注入顺序的问题了,经过查阅:==web应用启动的顺序是:listener->filter->servlet==
那就会发现我们自动注入的Service,此时还没有轮到他,但是在过滤器filter中已经使用了他;所以就爆了空指针;
那阿昌这里提供一种解决方案:使用filter中的init()
方法来在filter的生命周期中我们手动注入需要使用的Service;
1 |
|
这样子就可以手动在filter中注入自己需要的服务了!!!