Spring WebFlux और Reactor Core
Reactor Core के `Mono` और `Flux` के साथ काम करते हुए Spring WebFlux का उपयोग करके रिएक्टिव REST API बनाएँ।
Spring WebFlux और Reactor Core, CoddyKit पर Spring Boot 4 की संपूर्ण मार्गदर्शिका का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Spring Boot 4 की संपूर्ण मार्गदर्शिका सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Spring Boot 4 की संपूर्ण मार्गदर्शिका पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Spring WebFlux के साथ प्रतिक्रियाशील वेब
Spring WebFlux में आपका स्वागत है! यह फ्रेमवर्क प्रतिक्रियाशील, गैर-अवरोधक वेब अनुप्रयोग बनाने के लिए Spring का समाधान है।
पारंपरिक Spring MVC के विपरीत, जो सर्वलेट-आधारित और अवरोधक मॉडल का उपयोग करता है, WebFlux को कम थ्रेड के साथ समवर्ती कार्य और उच्च थ्रूपुट के लिए बनाया गया है।
यह माइक्रोसर्विस और ऐसे अनुप्रयोगों के लिए उपयुक्त है जिन्हें अनेक समवर्ती कनेक्शन कुशलतापूर्वक संभालने की आवश्यकता होती है।
Reactor Core को समझना
Spring WebFlux के केंद्र में Reactor Core है। Reactor एक प्रतिक्रियाशील प्रोग्रामिंग लाइब्रेरी है, जो Reactive Streams specification को लागू करती है।
यह अतुल्यकालिक डेटा स्ट्रीम संभालने के लिए दो प्रमुख प्रकार प्रदान करती है:
Mono: 0 या 1 आइटम के अनुक्रमों के लिए।Flux: 0 से N आइटम वाले अनुक्रमों के लिए।
ये प्रकार ऐसे प्रकाशकों को दर्शाते हैं जो डेटा उत्सर्जित करते हैं और Subscriber उस डेटा का उपभोग करते हैं।
`Mono`: शून्य या एक तत्व
Mono एक विशेष Publisher है, जो अधिकतम एक आइटम उत्सर्जित कर सकता है, किसी भी आइटम को उत्सर्जित किए बिना पूरा हो सकता है, या कोई त्रुटि उत्सर्जित कर सकता है।
इसे किसी एक मान के लिए अतुल्यकालिक कंटेनर के रूप में समझिए। यह ऐसे कार्यों के लिए आदर्श है जो एक परिणाम लौटाते हैं, जैसे ID के आधार पर किसी उपयोगकर्ता को प्राप्त करना या एकल अद्यतन करना।
आपका पहला `Mono`
आइए, Mono को कार्य करते हुए देखते हैं। हम एक Mono बनाते हैं और फिर उसकी सदस्यता subscribe() से लेते हैं। subscribe() विधि डेटा प्रवाह शुरू करती है।
import reactor.core.publisher.Mono;
public class Main {
public static void main(String[] args) {
Mono<String> greetingMono = Mono.just("Hello, Mono!");
// Subscribe to the Mono to consume the data
greetingMono.subscribe(
data -> System.out.println(data), // onNext consumer
error -> System.err.println("Error: " + error), // onError consumer
() -> System.out.println("Mono completed.") // onComplete callback
);
}
}`Flux`: शून्य से अनेक तत्व
Flux एक Publisher है, जो समय के साथ 0 से N आइटम उत्सर्जित कर सकता है और फिर वैकल्पिक रूप से पूर्णता संकेत या त्रुटि के साथ समाप्त हो सकता है।
यह डेटा स्ट्रीम संभालने के लिए बिल्कुल उपयुक्त है, जैसे उत्पादों की सूची, रीयल-टाइम इवेंट या ऐसे डेटाबेस क्वेरी परिणाम जिनमें कई पंक्तियाँ लौटती हैं।
आपका पहला `Flux`
यह आइटम की सूची से Flux बनाने का एक उदाहरण है। Mono की तरह ही, डेटा का उत्सर्जन शुरू करने के लिए आपको subscribe() करना होगा।
import reactor.core.publisher.Flux;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("Apple", "Banana", "Cherry");
Flux<String> fruitFlux = Flux.fromIterable(fruits);
// Subscribe to the Flux to consume the data stream
fruitFlux.subscribe(
data -> System.out.println(data), // onNext consumer for each item
error -> System.err.println("Error: " + error), // onError consumer
() -> System.out.println("Flux completed.") // onComplete callback
);
}
}प्रतिक्रियाशील एंडपॉइंट बनाना
Spring WebFlux, Reactor Core के Mono और Flux के साथ सहज रूप से एकीकृत होता है। आप अपने REST एंडपॉइंट को इन प्रतिक्रियाशील प्रकारों को लौटाने के लिए परिभाषित कर सकते हैं।
जब WebFlux का नियंत्रक विधि Mono या Flux लौटाती है, तो Spring सदस्यता और डेटा स्ट्रीमिंग को स्वचालित रूप से संभालता है, जिससे गैर-अवरोधक I/O संभव होता है।
`Mono` लौटाने वाला एंडपॉइंट
यहाँ एक सरल WebFlux एंडपॉइंट बनाने का तरीका दिया गया है, जो Mono<String> लौटाता है। यह एंडपॉइंट अतुल्यकालिक रूप से एक स्ट्रिंग के साथ उत्तर देगा।
ध्यान दें: यह कोड अंश Spring Boot अनुप्रयोग का हिस्सा है और इसे स्वतंत्र रूप से चलाया नहीं जा सकता।
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;
@RestController
public class HelloController {
@GetMapping("/hello-mono")
public Mono<String> getHelloMono() {
// Simulate a non-blocking operation that returns a single greeting
return Mono.just("Hello from Mono endpoint!");
}
}`Flux` लौटाने वाला एंडपॉइंट
कई आइटम की स्ट्रीमिंग करने वाले एंडपॉइंट के लिए आप Flux<T> लौटा सकते हैं। WebFlux इन आइटम के उपलब्ध होते ही उन्हें भेजने का कार्य संभालता है, अक्सर Server-Sent Events (SSE) का उपयोग करके।
ध्यान दें: यह कोड अंश Spring Boot अनुप्रयोग का हिस्सा है और इसे स्वतंत्र रूप से चलाया नहीं जा सकता।
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import java.time.Duration;
@RestController
public class HelloController {
@GetMapping(value = "/hello-flux", produces = "text/event-stream")
public Flux<String> getHelloFlux() {
// Emit 5 items, one every second
return Flux.interval(Duration.ofSeconds(1))
.map(sequence -> "Item " + sequence + " from Flux!")
.take(5);
}
}अपनी जानकारी जाँचें
आइए, Spring WebFlux और Reactor Core की आपकी समझ जाँचते हैं।
पुनरावलोकन: WebFlux और Reactor Core
इस पाठ में आपने Spring Boot के साथ प्रतिक्रियाशील प्रोग्रामिंग के मुख्य घटकों के बारे में सीखा:
- Spring WebFlux: गैर-अवरोधक वेब फ्रेमवर्क।
- Reactor Core: प्रतिक्रियाशील प्रकार प्रदान करने वाली अंतर्निहित लाइब्रेरी।
Mono: 0 या 1 डेटा आइटम संभालने के लिए।Flux: 0 से N डेटा आइटम संभालने के लिए।
आपने यह भी देखा कि Mono और Flux लौटाकर WebFlux नियंत्रकों में प्रतिक्रियाशील एंडपॉइंट कैसे परिभाषित किए जाते हैं।
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 21
- पाठ
- 84
अक्सर पूछे जाने वाले प्रश्न
क्या “Spring WebFlux और Reactor Core” पाठ निःशुल्क है?
हाँ — Spring Boot 4 की संपूर्ण मार्गदर्शिका अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Spring WebFlux और Reactor Core” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Spring Boot 4 की संपूर्ण मार्गदर्शिका पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Spring WebFlux और Reactor Core” में मैं क्या सीखूँगा?
Reactor Core के `Mono` और `Flux` के साथ काम करते हुए Spring WebFlux का उपयोग करके रिएक्टिव REST API बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Spring Boot 4 की संपूर्ण मार्गदर्शिका का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Spring Boot 4 की संपूर्ण मार्गदर्शिका शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Spring Boot 4 की संपूर्ण मार्गदर्शिका शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“Spring WebFlux और Reactor Core” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Spring Boot 4 की संपूर्ण मार्गदर्शिका पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Spring Boot 4 की संपूर्ण मार्गदर्शिका पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- रिएक्टिव प्रोग्रामिंग का परिचय
- Spring WebFlux और Reactor Core
- रिएक्टिव डेटा एक्सेस और एकीकरण
- रिएक्टिव स्ट्रीम्स में बैकप्रेशर और त्रुटि प्रबंधन