# request-log-interceptor-starter 添加拦截器,打印所有的请求和返回值。 ## 使用方式 ### 1. 引入依赖 ```xml <dependency> <groupId>com.nokia</groupId> <artifactId>request-log-interceptor-starter</artifactId> <version>1.0</version> </dependency> ``` ### 2. 注入拦截器 - 自行注入方式 ```java // 引入配置类 @Configuration public class RequestLogConfiguration implements WebMvcConfigurer { /** * 添加拦截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 添加日志拦截器 registry.addInterceptor(new RequestLogHandlerInterceptor()).addPathPatterns("/**"); } /** * 注入自定义的RequestLogDispatcherServlet替代默认的DispatcherServlet */ @Bean @Qualifier(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME) public DispatcherServlet dispatcherServlet() { return new RequestLogDispatcherServlet(); } } ``` - 配置方式(不推荐) ```yml request: log: enable: true spring: main: allow-bean-definition-overriding: true ``` > 注意,这里需要打开配置`spring.main.allow-bean-definition-overriding=true`,允许覆盖springbean,这样才能实现使用starter注入的DispatcherServlet替代默认的。这不是一种安全的做法,因此不建议使用。 ## 版本更新记录 ### v1.0 1. 实现了打印日志的功能,日志样式如下: ```text 2023-05-25 18:26:44.649 INFO 9520 --- [nio-8080-exec-1] c.n.r.i.RequestLogHandlerInterceptor : 请求地址: http://127.0.0.1:8080/test POST,请求头: {content-length=0, host=127.0.0.1:8080, content-type=application/json, connection=close, accept-encoding=gzip, deflate, user-agent=vscode-restclient},请求参数: 2023-05-25 18:26:44.667 INFO 9520 --- [nio-8080-exec-1] c.n.r.i.RequestLogHandlerInterceptor : 耗时 18 ms, 返回 200: === ```