Spring WebFlux (Reactive)
Реактивне програмування з WebFlux, Mono і Flux, функціональними роутерами, backpressure, reactive streams
1Який основний принцип реактивного програмування?
Який основний принцип реактивного програмування?
Відповідь
Реактивне програмування ґрунтується на асинхронних потоках даних і автоматичному поширенні змін. На відміну від імперативного програмування, де дані запитуються активно (pull), реактивний підхід проштовхує дані до підписників (push). Це дозволяє створювати неблокуючі застосунки, стійкі до змін навантаження.
2Яка основна різниця між Mono та Flux у Project Reactor?
Яка основна різниця між Mono та Flux у Project Reactor?
Відповідь
Mono — це реактивний publisher, який випромінює 0 або 1 елемент, ідеальний для операцій, що повертають єдине значення (як findById). Flux випромінює від 0 до N елементів і підходить для колекцій та потоків (як findAll). Це розрізнення оптимізує продуктивність і семантику коду, чітко виражаючи очікування щодо кардинальності.
3Коли слід використовувати Mono<T> замість Flux<T>?
Коли слід використовувати Mono<T> замість Flux<T>?
Відповідь
Використовуйте Mono, коли операція повертає щонайбільше 0 або 1 результат, наприклад отримання користувача за ID, збереження сутності або виконання HTTP-запиту, що повертає єдиний об'єкт. Це передає намір коду й уможливлює внутрішні оптимізації. Flux був би недоречним, оскільки передбачає потенційно велику колекцію.
Який типовий сценарій використання Flux<T>?
Яка фундаментальна різниця між Spring WebFlux та Spring MVC?
+22 питань зі співбесід
Інші теми співбесід Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Логування за допомогою SLF4J та Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Обробка винятків
Bean Validation
Основи Spring Data JPA
Сутності JPA та зв'язки
Запити JPA
Spring Data Repositories
Основи Spring Security
Spring Boot Actuator
Модульне тестування з JUnit та Mockito
Тестування Spring Boot
Profiles та Environment
RestTemplate і WebClient
Async і Scheduling
Кешування зі Spring
Транзакції Spring
Розширена автентифікація та авторизація
JWT та stateless-безпека
OAuth2 та Authorization Server
Spring Boot і Docker
Microservices зі Spring
Spring Cloud Config
Оптимізація продуктивності
GraalVM Native Images
Опануй Spring Boot для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно