我目前正在使用 Spring Cloud Sleuth 开发一个监控应用程序。目前,我尝试尽可能多地收集有关我的请求的信息。
为了使该方法尽可能具有可扩展性,我使用GenericFilterBeans
并HandlerInterceptorAdapter
访问来自发送到 REST-API 的请求的信息。
我正在努力获取 REST 调用的参数,其中参数是从 URL 映射的,如下面的代码片段所示:
@RequestMapping(
value = {"/{service}/{route_id}/book", "/accounting-core-service/{service}/{route_id}/book"},
method = RequestMethod.GET)
@ResponseBody
public ModelAndView book(@PathVariable(value="service") String serviceName,
@PathVariable(value = "route_id") int routeId,
HttpServletResponse response) {
/*Do something*/
}
问题不在于这样写是否是好习惯。问题是是否有类似于 Filter 或 Interceptor 的方法(或正确使用它们)来访问这些参数。
一个要求是,它可以通过添加非常少的代码行轻松地应用于应用程序。手动注释每个方法调用或手动插入代码以从方法内将参数写入跟踪对我来说是不可行的。
如果您需要更多信息,请随时询问。我将为您提供帮助我解决问题所需的所有信息。