HandlerInterceptor注入bean报错
过滤器注入Bean
/**
* 登录拦截器
* @author swt
*/
@Component
public class AccessTokenInterceptor implements HandlerInterceptor {
@Autowired
private LoginInfoService loginInfoService;
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
// loginInfoService = null ???
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
// 请求处理之后进行调用,但是在视图被渲染之前
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
// 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)
}
}
错误的写法
/**
* 过滤器
* @author swt
*/
@Configuration
public class MvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AccessTokenInterceptor ()).addPathPatterns("/**");
}
}
正确的写法
/**
* 过滤器
* @author swt
*/
@Configuration
public class MvcConfiguration extends WebMvcConfigurerAdapter {
@Autowired
private AccessTokenInterceptor accessTokenInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(accessTokenInterceptor).addPathPatterns("/**");
}
}
浙公网安备 33010602011771号