Spring拦截器获取注入的bean为null解决方式

出现问题的代码:

public class MyInterceptor implements HandlerInterceptor {
    
    

    @Autowired
    ToolsService toolsService;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    
        System.out.println(toolsService);
    }
}

输出为null,但是该bean已经注入到了Spring容器中。



解决方式:
如上代码不需改变

@Configuration
public class AppConfig implements WebMvcConfigurer {
    
    
	
	// 加入如下代码可解决
    @Bean
    public MyInterceptor myInterceptor() {
    
    
        return new MyInterceptor();
    }
    
    /**
     * 注册自定义拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    
    
        registry.addInterceptor(myInterceptor()).addPathPatterns("/**");
    }
}

猜你喜欢

转载自blog.csdn.net/Stand_Fast/article/details/118117721
今日推荐