Является ли RestTemplate поточно-ориентированным - PullRequest
0 голосов
/ 05 ноября 2018

Я создаю объект RestTemplate один раз в методе @PostConstruct и использую этот экземпляр для выполнения всех HTTP-вызовов из моего приложения. Например:

@Service
public class MicroserviceIntercomm {

    private RestTemplate restTemplate;
    private @Autowired RequestBean requestBean; //RequestScope

    @PostConstruct
    public void init() throws IllegalArgumentException, UnsupportedEncodingException, NoSecretProvidedException, NoAlgorithmSetException, GenerateTokenException, InvalidEndpointException {
        headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        SimpleClientHttpRequestFactory clientHttpReq = new SimpleClientHttpRequestFactory();
        clientHttpReq.setConnectTimeout(connectionTimeout);
        clientHttpReq.setReadTimeout(readTimeout);
        restTemplate = new RestTemplate(clientHttpReq);  
    }

    public void apiCallFoo() {
        headers.set(headerName, requestBean.getJwtToken());
        HttpEntity<?> entity = new HttpEntity<>(headers);
        HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
    }

    public void apiCallBar() {
        headers.set(headerName, requestBean.getJwtToken());
        HttpEntity<?> entity = new HttpEntity<>(headers);
        HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
    }
}

Из документации неясно, является ли использование RestTemplate этим способом поточно-ориентированным.

Согласно этой статье блога это:

Это означает, например, что RestTemplate является поточно-ориентированным после создания и что вы можете использовать обратные вызовы для настройки его операций.

Однако при просмотре Javadoc для метода exchange() явно не указано, что этот метод является поточно-ориентированным.

Должны ли мы внести изменения в этот код, чтобы сделать его поточно-ориентированным, или он работает как задумано?

Мы используем Spring boot 1.5.10.RELEASE.

...