java前向标头变量Spring Boot
在我当前的项目中,我将一些请求转发给另一个微服务,并且我在头中接收到一个变量来标识调用者。我想把这封邮件发到另一家服务公司。我知道我可以在控制器中接收并在方法中作为参数添加,但我必须在代码的所有层中添加此变量
是否有一种方法可以接收此变量并在post中发送,而不将其作为变量传递
我目前的解决方案如下:
public ResponseEntity foo(@RequestHeader(value = "bar", required = false) final String bar){
fooService.post(bar);
}
public class FooService(){
private final RestTemplate restTemplate;
public void post(Bar bar){
....
restTemplate.postForEntity(...);
....
}
}
有更多的层,这可能会使这种方法变得混乱
# 1 楼答案
我不确定我是否清楚您的问题,但您可以在一些自定义上下文类中设置此变量,该类将存储此变量,通过interceptor,您可以在rest模板post方法中设置此变量