我在Tomcat服务器上部署了一个Spring Boot应用程序,它使用Spring RestTemplate
接收请求并向其他服务发出一些其他HTTP REST请求。
client --> myApplication --> anotherService
在传入请求中,有一个CORRELATION_ID
HTTP标头,用于跟踪请求。
我希望任何对其他服务的请求也都有这个标题,这样我就可以关联不同服务器上的日志。
如何在不改变现有代码的情况下实现这一目标?
是否有任何RestTemplateInterceptor
我可以在启动时设置某个位置,以便拦截任何传出请求并添加该标头?
或者有没有办法在Tomcat服务器中拦截此事件并传播标题?
答案 0 :(得分:1)
没有这样的自动处理。
您可以截取传入调用的标头并将其存储在请求上下文(例如请求范围的bean)中。
然后,您可以使用ClientHttpRequestInterceptor
将其添加到每个外出请求中。使用restTemplate.getInterceptors().add(…)