В чем разница между Mono и Flux в рамках реактивного программирования?

Mono выдает 0 или 1 элемент. Flux выдает 0 и более элементов (в том числе бесконечно много).

Короткий ответ

Что ответить на собеседовании

Mono выдает 0 или 1 элемент. Flux выдает 0 и более элементов (в том числе бесконечно много).

Подробный разбор

Ответ с пояснениями

Mono выдает 0 или 1 элемент. Flux выдает 0 и более элементов (в том числе бесконечно много).

Примеры использования:

  • Mono: Результат операции над одиночным объектом (например, сохранение записи в базе данных, получение одного элемента по ID).
  • Flux: Поток событий (например, клики пользователя, данные из файла, элементы коллекции).
// Пример Mono: получение одного пользователя
Mono<User> findUserById(Long userId) {
    return userRepository.findById(userId);
}
// Пример Flux: получение всех пользователей
Flux<User> findAllUsers() {
    return userRepository.findAll();
}

Ключевые отличия:

Характеристика Mono Flux
Количество элементов 0 или 1 0 или более
Представление Представляет одиночное событие Представляет поток событий
Операции Применяются к одиночному элементу Применяются к потоку элементов

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее