Springboot配置拦截器
1.实现抽象类 HandlerInterceptorAdapter(import org.springframework.web.servlet.handler;)
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class MyInterceptor extends HandlerInterceptorAdapter {
private Logger logger = LoggerFactory.getLogger(getClass());
//执行拦截
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
logger.info(request.getRequestURI());
System.err.println("=================================");
return true;
}
//拦截后的相应,可以在拦截器后返回前端信息(input 可以是返回值类型的json字符串)
private void printInput(HttpServletResponse response, String input) throws IOException {
PrintWriter writer = response.getWriter();
writer.print(input);
writer.flush();
writer.close();
}
}
2.配置WebConfig 实现WebMvcConfigurer (package org.springframework.web.servlet.config.annotation;)
import com.api.chatup.interceptor.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.config.annotation.*;
import java.util.List;
@Configuration
public class WebConfig implements WebMvcConfigurer {
//实现 addPathPatterns的参数,以/**结尾,比如说是api下的全部就是(/api/**)
//excludePathPatterns是配置不拦截的接口
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("");
}
}
3.在springboot启动类配置WebConfig
@EnableWebMvc@SpringBootApplication
public class ChatupApplication {
public static void main(String[] args) {
SpringApplication.run(ChatupApplication.class, args);
}
}