Встречается на собеседованиях • сегодня

В чем разница между WebClient и RestTemplate

WebClient и RestTemplate — клиенты для HTTP-запросов в Spring, но с ключевыми отличиями:

  1. Блокирующий vs Неблокирующий:
    • RestTemplate блокирует поток (синхронный).
    • WebClient асинхронный, работает на реактивной модели (Project Reactor).
  1. Поддержка HTTP/2:
    WebClient поддерживает HTTP/2, RestTemplate — нет.

  2. Зависимости:

    • RestTemplate часть spring-web.
    • WebClient требует spring-webflux.

Пример WebClient:

java
WebClient.create()
    .get()
    .uri("https://api.example.com/data")
    .retrieve()
    .bodyToMono(String.class)
    .subscribe(System.out::println);

Пример RestTemplate:

java
String result = new RestTemplate()
    .getForObject("https://api.example.com/data", String.class);

Выбор:

  • Для реактивных приложений — WebClient.
  • Для legacy-кода — RestTemplate (но он deprecated с Spring 5).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы