Spring WebFlux (Reactive)
การเขียนโปรแกรมแบบ reactive ด้วย WebFlux, Mono และ Flux, functional router, backpressure, reactive streams
1หลักการพื้นฐานของการเขียนโปรแกรมแบบ reactive คืออะไร?
หลักการพื้นฐานของการเขียนโปรแกรมแบบ reactive คืออะไร?
คำตอบ
การเขียนโปรแกรมแบบ reactive ตั้งอยู่บนพื้นฐานของสตรีมข้อมูลแบบอะซิงโครนัสและการกระจายการเปลี่ยนแปลงโดยอัตโนมัติ ต่างจากการเขียนโปรแกรมแบบ imperative ที่ร้องขอข้อมูลเชิงรุก (pull) แบบ reactive จะผลักข้อมูลไปยัง subscriber (push) ซึ่งช่วยให้สร้างแอปพลิเคชันแบบ non-blocking ที่ทนต่อการเปลี่ยนแปลงของโหลดได้
2ความแตกต่างหลักระหว่าง Mono และ Flux ใน Project Reactor คืออะไร?
ความแตกต่างหลักระหว่าง Mono และ Flux ใน Project Reactor คืออะไร?
คำตอบ
Mono เป็น publisher แบบ reactive ที่ปล่อย 0 หรือ 1 element เหมาะสำหรับการดำเนินการที่คืนค่าเดียว (เช่น findById) ส่วน Flux ปล่อย 0 ถึง N element เหมาะกับ collection และ stream (เช่น findAll) การแยกแยะนี้ช่วยเพิ่มประสิทธิภาพและความชัดเจนเชิงความหมายของโค้ดโดยแสดงความคาดหวังด้าน cardinality อย่างชัดเจน
3ควรใช้ Mono<T> แทน Flux<T> ในกรณีใด?
ควรใช้ Mono<T> แทน Flux<T> ในกรณีใด?
คำตอบ
ใช้ Mono เมื่อการดำเนินการคืนผลลัพธ์มากที่สุด 0 หรือ 1 รายการ เช่น การดึงผู้ใช้ด้วย ID การบันทึก entity หรือการเรียก HTTP ที่คืนวัตถุเดียว สิ่งนี้สื่อถึงเจตนาของโค้ดและช่วยให้ทำการปรับแต่งภายในได้ ส่วน Flux จะไม่เหมาะสมเพราะสื่อถึง collection ที่อาจมีขนาดใหญ่
กรณีการใช้งานทั่วไปของ Flux<T> คืออะไร?
ความแตกต่างพื้นฐานระหว่าง Spring WebFlux และ Spring MVC คืออะไร?
+22 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Spring Boot อื่นๆ
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
การทำ Logging ด้วย 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
Caching ด้วย Spring
ทรานแซกชัน Spring
การยืนยันตัวตนและการให้สิทธิ์ขั้นสูง
JWT และความปลอดภัยแบบ Stateless
OAuth2 และ Authorization Server
Spring Boot และ Docker
Microservices ด้วย Spring
Spring Cloud Config
การเพิ่มประสิทธิภาพการทำงาน
GraalVM Native Images
เชี่ยวชาญ Spring Boot สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี