spring MVC拦截器里依赖注入为null的问题解决
因为项目中需要权限认证,所以打算在拦截器里加上拦截处理,结果需要处理的类,依赖注入后为null,网上各种大神指点的都没用实现bean的注入。后来看到别人的实现是ok的,在此谢谢大牛指点,我也将此记录下来,如果也遇到类似问题的小伙伴,希望你们能顺利踩坑过去。
1.自定义拦截器处理类
public class TokenInterceptor implements HandlerInterceptor {
ValidateHandleBiz validateHandleBiz;
public TokenInterceptor(ValidateHandleBiz validateHandleBiz) {
this.validateHandleBiz = validateHandleBiz;
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HandlerMethod handlerMethod= (HandlerMethod)handler;
ApiValidateAnno apiValidateAnno = handlerMethod.getMethodAnnotation(ApiValidateAnno.class);
if(null!=apiValidateAnno){
return validateHandleBiz.apiValidate(request,response,handlerMethod,apiValidateAnno);
}
return false;
}
}
2. 实现WebMvcConfigurer接口,重写addInterceptors方法,加入你自定义的拦截器处理
@Configuration
public class InterceptorsConfiguration implements WebMvcConfigurer {
@Autowired
ValidateHandleBiz validateHandleBiz;
/**
* 添加请求token校验
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TokenInterceptor(validateHandleBiz));
}
}
到此结束,您的引用类就能访问了