问题描述
我一直在努力让日志记录拦截器工作三天。
我觉得互联网上的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);
}
}