Вызов Custom Rest Template в весенней загрузке Java-приложения - PullRequest
0 голосов
/ 12 октября 2019

У меня есть приложение весенней загрузки, которое работает на версии 2.1.7. Я пытаюсь реализовать пользовательский шаблон отдыха, используя Rest Template Builder, чтобы установить соединение и время ожидания чтения. Я узнал, что мне нужно использовать Rest Template Builder, так как я работаю на 2.1.7. Код для моего пользовательского шаблона отдыха показан ниже. Мне нужна помощь в вызове этого шаблона отдыха в других областях моего кода, поскольку этот шаблон отдыха будет использоваться различными компонентами моего приложения, но мне нужна помощь в этом. Любой совет по этому вопросу будет принята с благодарностью. Спасибо!

public abstract class CustomRestTemplate implements RestTemplateCustomizer {

    public void customize(RestTemplate restTemplate, Integer connectTimeout, Integer readTimeout) {
        restTemplate.setRequestFactory(new SimpleClientHttpRequestFactory());
        SimpleClientHttpRequestFactory template = (SimpleClientHttpRequestFactory) restTemplate.getRequestFactory();
        template.setConnectTimeout(connectTimeout);
        template.setReadTimeout(readTimeout);
    }
}

1 Ответ

1 голос
/ 15 октября 2019

Вам не нужно расширять настройщик, это перебор. Самый простой и чистый способ сделать это - создать bean-компонент RestTemplate и внедрить его в качестве зависимости.

Например, вы можете иметь конфигурацию и объявить bean-компонент:

@Configuration
public class WebConfig {

    private int fooConnectTimeout = 4000;
    private int fooReadTimeout = 4000;

    @Bean
    public RestTemplate restTemplate(final RestTemplateBuilder builder) {
        return builder.setConnectTimeout(fooConnectTimeout)
                .setReadTimeout(fooReadTimeout)
                .build();
    }
}

Теперь просто введите бин в класс, вот так:

@Service
public class FooService {

    private RestTemplate restTemplate;

    public FooService(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    // custom code here....
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...