Resolved exception caused by Handler execution: java.lang.NullPointerException

在这里插入图片描述
springmvc自定义的拦截器导致的NullPointerException

这块拦截器作用是帮助界面进行渲染的
排查思路:
1.注释掉拦截器相关代码,controller与js那边检查都是没问题的,看看自定义拦截器的是不是参数或者哪里传错了,也都是ok的。
2.那就去看看WebMvcConfigurer下的
@Configuration,果然找到了问题

public OtherInterceptor getOtherIntercepter(){
    return new OtherInterceptor();
}

@Override
public void addInterceptors(InterceptorRegistry registry){

    registry.addInterceptor(getOtherIntercepter()).addPathPatterns("/**");

}

忘记做拦截器@bean注释,第一次这里遇到问题是没有重写addInterceptors,修改如下

//加上@bean,类上加上@configgur
@bean
public OtherInterceptor getOtherIntercepter(){
    return new OtherInterceptor();
}

@Override
public void addInterceptors(InterceptorRegistry registry){
//所有请求都被拦截
    registry.addInterceptor(getOtherIntercepter()).addPathPatterns("/**");

}

没有把他放到spring容器中,导致的。

当然有没有@Configuration注解,@Bean都会起效,都会将@Bean修饰的方法作为bean注册到容器中
被@Configuration修饰的类,spring容器中会通过cglib给这个类创建一个代理,代理会拦截所有被@Bean 修饰的方法,默认情况(bean为单例)下确保这些方法只被调用一次,从而确保这些bean是同一个bean,即单例的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值