泽西岛客户:是否可以拦截每个性能测量请求



我目前正在为我们正在开发的Rest服务开发Rest客户端。我希望能够测量所有客户端调用的性能。人们可以很容易地做这样的事情:

WebTarget target ... // just assume a WebTarget is given
long before = System.currentTimeMillis();
Response response = target.request().get(); // execute the request
long after = System.currentTimeMillis();
long timeTaken = after - before;
// now log timeTaken or whatever one might wanna do

是否可以拦截每个请求,以便将此代码应用于每个请求我不想一遍又一遍地重复这段代码。我搜索了一段可以重写以执行此代码的中心代码,但没有找到合适的代码。

如果您使用的是Jersey 2.6或更高版本,则可以使用新添加的HK2 AOP功能。基本上,您要做的是在接近应用程序初始化的地方添加一个Interception Service的实现,并提供您的AOP Alliance方法拦截器。然后,您可以编写任何代码来衡量拦截器的性能。

最新更新