我有 JAX-RS Web 应用程序,我想记录从获取请求到响应的时间量。在 Spring Boot 中使用 servlet 过滤器很容易。但我的应用程序中的过滤器无法正常工作:
@Provider
public class RequestLogFilter implements ContainerRequestFilter, ContainerResponseFilter {
private long requestStartTime;
@Override
public void filter(ContainerRequestContext requestContext) {
requestStartTime = System.currentTimeMillis();
}
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) {
long requestFinishTime = System.currentTimeMillis();
System.out.println(requestFinishTime - requestStartTime);
}
}
Run Code Online (Sandbox Code Playgroud)
它在第一种方法中工作正常,其中当前时间戳写入requestStartTime. 但是,似乎第二种方法有自己的requestStartTime变量副本,因为它是第二种方法,它始终等于零。所以我无法计算变量之间的差异。我可以做什么来记录请求处理时间?
我需要从字符串解析枚举实例。问题是我有骆驼样式的输入字符串,例如docType和常量样式的枚举,例如DOC_TYPE.
据我所知,java 需要在枚举解析上完全匹配,所以我试图找到一种优雅的方法来解决这个问题。