Java 记录请求响应时间
时间: 2023-10-11 07:06:42 浏览: 39
可以使用Java的拦截器(Interceptor)来记录请求响应时间。以下是一个简单的示例:
1. 创建一个拦截器类,实现HandlerInterceptor接口。
```java
public class RequestTimingInterceptor implements HandlerInterceptor {
private static final Logger logger = LoggerFactory.getLogger(RequestTimingInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在请求处理之前记录请求开始时间
request.setAttribute("startTime", System.currentTimeMillis());
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// 在请求处理完成后记录请求响应时间
long startTime = (Long) request.getAttribute("startTime");
long endTime = System.currentTimeMillis();
long executeTime = endTime - startTime;
// 记录请求响应时间
logger.info("Request URL: " + request.getRequestURL().toString() + " - Execution Time: " + executeTime + "ms");
}
}
```
2. 在Spring配置文件中注册拦截器。
```xml
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.example.RequestTimingInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
```
这样,每次请求处理完成后,都会记录请求响应时间,并打印到日志中。