zoukankan      html  css  js  c++  java
  • 拦截器HandlerInterceptor内部也可以注入bean,代码纠正补充

    原文地址https://www.jianshu.com/p/890c23a1b3d7

    原文内容

    1、拦截器内无法通过SpringBean的方式注入LoggerJPA,我只能通过另外一种形式。

       private <T> T getDAO(Class<T> clazz,HttpServletRequest request)
        {
            BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
            return factory.getBean(clazz);
        }
    

    2、 然后在拦截器内部需要LoggerJPA对象的地方获取就行。

            LoggerJPA loggerDAO = getDAO(LoggerJPA.class,request);
            loggerDAO.save(loggerEntity);
    

     

    纠正如下:

    原配置为

    自定义的拦截器内部是可以用spring注入的方式注入bean对象的

    1、在拦截器配置中LoggerConfguration 添加bean,同时将new LoggerInterceptor() 改为loggerInterceptor(),此操作是将拦截器注册为bean也交给spring管理,这样拦截器内部注入其他的bean对象也就可以被spring识别了

    @Configuration
    public class LoggerConfguration extends WebMvcConfigurerAdapter
    {
        @Bean
        LoggerInterceptor loggerInterceptor(){
            return new LoggerInterceptor();
        }
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(loggerInterceptor()).addPathPatterns("/**");
        }
    }
    

     

    2、拦截器内部调用原来为

      LoggerJPA loggerDAO = getDAO(LoggerJPA.class,request);
            loggerDAO.save(loggerEntity);
    

      该为:运行后成功,不会出现bean未注入,报空指针的情况。

     loggerJPA.save(loggerEntity);
    

      

  • 相关阅读:
    第一次作业
    第五次作业
    第三次作业
    第六次作业
    第二次作业
    scikitlearn学习 决策树
    [阅读]Think Python CH3 Functions
    [阅读]Think Python CH2 Variables, Expressions, and Statements
    [阅读]Think Python CH1 The Way of the Program
    Hive操作符和函数
  • 原文地址:https://www.cnblogs.com/Andrew520/p/9501973.html
Copyright © 2011-2022 走看看