Вопрос вкратце: Как передать динамическое значение перехватчику Spring REST после того, как RestTemplate является Autowired?Перехватчик весов REST с динамическими значениями
Теперь подробное объяснение:
У меня есть перехватчик Spring REST, как показано ниже:
public class HeaderRequestInterceptor implements ClientHttpRequestInterceptor {
private final String headerName;
private final String headerValue;
public HeaderRequestInterceptor(final String headerName, final String headerValue) {
this.headerName = headerName;
this.headerValue = headerValue;
}
public ClientHttpResponse intercept(final HttpRequest request, final byte[] body, final ClientHttpRequestExecution execution) throws IOException {
HttpRequest wrapper = new HttpRequestWrapper(request);
wrapper.getHeaders().set(headerName, headerValue);
return execution.execute(wrapper, body);
}
}
И тогда я могу настроить RestTemplate, как показано ниже с выше перехватчик:
@Bean
public RestTemplate getRestTemplate() {
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
interceptors.add(new HeaderRequestInterceptor(<<MY-CUSTOM-HEADER>>, <<MY-DYNAMIC-VALUE>>));
final RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory());
restTemplate.setInterceptors(interceptors);
return restTemplate;
}
Пожалуйста, посмотрите, как я создаю перехватчик. MY-CUSTOM-HEADER является константой, но MY-DYNAMIC-VALUE может изменяться для каждого запроса. Как я могу заставить перехватчик принимать динамическое значение?
PS: Это автономное пружинное приложение (а не паутина). Это своего рода клиентская библиотека, которая будет использоваться для вызовов REST.
Вы можете использовать '@Scope (" request ")' then – sura2k
Вы уверены, что область запроса также может использоваться в приложении для не-паутины? – Mubin