SpringBoot 拦截器中无法使用 @Autowired 注入 Service
Posted starudream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 拦截器中无法使用 @Autowired 注入 Service相关的知识,希望对你有一定的参考价值。
进行如下修改即可。
首先是 WebMvcConfiguration
:
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
@Bean
public AuthenticationInterceptor authenticationInterceptor() {
return new AuthenticationInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authenticationInterceptor()).addPathPatterns("/**");
}
}
然后需要使 springboot
扫描到当前 Interceptor
,也就是在类上加上 @Component
注释。
@Component
public class AuthenticationInterceptor implements HandlerInterceptor {
@Autowired
private UserService userService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
User user = userService.getById(id);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) throws Exception {
}
}
以上是关于SpringBoot 拦截器中无法使用 @Autowired 注入 Service的主要内容,如果未能解决你的问题,请参考以下文章
拦截器在 Spring Boot 1.5.8 版本中无法接收请求
SpringBoot拦截器中service或者redis注入为空的问题