Java Spring框架拦截器问题

问题描述

我一直在努力让日志记录拦截器工作三天。

我觉得互联网上的Stackoverflow和其他教程都没什么用,但是我仍然没有找到可行的解决方案。

我正在使用 Java 8 Spring框架4.3.25.RELEASE

这是我的代码

@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

    @Bean
    public LoggingInterceptor loggingInterceptor () {
        return new LoggingInterceptor ();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor( loggingInterceptor() );
    }
}


@Component
public class LoggingInterceptor implements handlerinterceptor {

  @Override
  public boolean preHandle(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o) throws Exception {
    System.out.println("preHandle");
    return true;
  }

  @Override
  public void postHandle(HttpServletRequest httpServletRequest,Object o,ModelAndView modelAndView) throws Exception {
    System.out.println("postHandle");
  }

  @Override
  public void afterCompletion(HttpServletRequest httpServletRequest,Exception e) throws Exception {
    System.out.println("afterCompletion");
  }
}

是不是我没有使用@SpringBootApplication注释?

解决方法

您可以扩展HandlerInterceptorAdapter,并覆盖您分离的方法。我将在下面发布我的代码。

@Component
public class MyIntercepter extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,HttpServletResponse 
response,Object handler) throws Exception {
return true;
}



@Configuration
    public class WebMvcConfiguration implements WebMvcConfigurer {
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
                registry.addInterceptor(myIntercepter);
        }
    }