zoukankan      html  css  js  c++  java
  • SpringBoot

    前言

    • 拦截器中使用@Autowired时为空,这是因为拦截器加载是在Spring Bean创建之前。
    public class PermissionInterceptor implements HandlerInterceptor {
    
        @Autowired
        private UserService userService; // null
        
    }
    
    • 错误
      在这里插入图片描述

    解决方法

    @Configuration
    public class InterceptorConfiguration implements WebMvcConfigurer {
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(new PermissionInterceptor());
        }
    }
    
    • 修改成:
    @Configuration
    public class InterceptorConfiguration implements WebMvcConfigurer {
    
        @Bean
        public PermissionInterceptor getPermissionInterceptor() {
            return new PermissionInterceptor();
        }
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(getPermissionInterceptor());
        }
    }
    
    • 这样,PermissionInterceptor 由 @Bean 方法生成,其生命周期由 Spring 管理,Spring 将扫描 @Autowired 目标并注入它们。

    - End -
    梦想是咸鱼
    关注一下吧
    以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦
    作者:Maggieq8324
    本文版权归作者和博客园共有,欢迎转载,转载时保留原作者和文章地址即可。
  • 相关阅读:
    spring security 学习资料
    设计模式,学习资料
    知名博主
    shiro 学习资料
    nuxt 中使用 koa-session
    koa-session 知识点
    MySQL 中的默认数据库介绍
    JUnit 学习资料
    027_git添加多账号设置
    023_supervisorctl管理服务注意事项
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/15169518.html
Copyright © 2011-2022 走看看