<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>org.springframework.boot</artifactId>
<groupId>spring-boot-start-tomcat</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
创建拦截器
@Component
public class LogInterceptor implements HandlerInterceptor {
static Logger logger = LoggerFactory.getLogger(LoggerFactory.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
logger.info("请求的路径为: "+ request.getRequestURI() + ", 请求的参数为:" + JSON.toJSONString(request.getParameterMap()));
return true;
}
}
创建WebMvcConfigurer。
WebMvcConfigurer配置类其实是 Spring
内部的一种配置方式,采用 JavaBean
的形式来代替传统的 xml
配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个 配置
类并实现
WebMvcConfigurer
接口;
@Configuration
public class RequestLogConfiguration {
@Autowired
private LogInterceptor logInterceptor;
@Bean
public WebMvcConfigurer webMvcConfigurer(){
return new WebMvcConfigurer() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(logInterceptor).addPathPatterns("/**");
}
};
}
}
还有第二种方式实现,直接用WebConfiguration implements WebMvcConfigurer 重写addInterceptors方法