首页 > 其他 > 详细

拦截器依赖注入与启动顺序

时间:2020-01-17 17:29:53      阅读:108      评论:0      收藏:0      [点我收藏+]

问题引出:

因为想利用拦截器的aop特性来进行日志记录,但是注入依赖后运行时一直报空指针异常。

    @Autowired
    LogRepository logRepository;

问题解决:

百度查了下,发现是启动顺序的原因,拦截器先于ApplicationContext加载,所以无法注入依赖,只要在@Configuration中如下配置:

 

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {

    /**
     * 若要在Interceptor中进行依赖注入,则需要
     * 将拦截器注册为一个 Bean
     * @return
     */
    @Bean
    public PermissionInterceptor permissionInterceptor() {
        return new PermissionInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(permissionInterceptor())
                .addPathPatterns("/**")                             //默认过滤全部
                .excludePathPatterns("/exclude/**")       //需要排除的地址
        WebMvcConfigurer.super.addInterceptors(registry);
    }

}

拦截器依赖注入与启动顺序

原文:https://www.cnblogs.com/11HAN/p/12206431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!