@Valid से बीन वैलिडेशन
एनोटेशन से अनुरोध बॉडी का वैलिडेशन करें।
@Valid से बीन वैलिडेशन, CoddyKit पर Spring Boot 4 माइक्रोसर्विस और REST API का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Spring Boot 4 माइक्रोसर्विस और REST API सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Spring Boot 4 माइक्रोसर्विस और REST API पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Bean Validation का अवलोकन
Bean Validation (JSR-380, Jakarta Validation) आपको DTO फ़ील्ड पर annotations के साथ constraints घोषित करने और फिर उनके आधार पर objects को validate करने देता है। Spring Boot इसे एकीकृत करता है, इसलिए आने वाले request bodies की अपने-आप जाँच हो जाती है।
Dependency जोड़ना
Validation API और उसका implementation (Hibernate Validator), validation starter के माध्यम से मिलते हैं। इसे जोड़ने पर controllers में annotation-आधारित validation सक्रिय हो जाती है।
<!-- pom.xml -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>DTO पर Constraints
फ़ील्ड पर constraints के annotations लगाएँ। प्रत्येक annotation उस नियम का वर्णन करता है जिसे मान को पूरा करना आवश्यक है, साथ ही विफल होने पर दिखाए जाने वाले वैकल्पिक संदेश को भी परिभाषित कर सकता है।
public class CreateUserRequest {
@NotBlank
private String name;
@Email @NotNull
private String email;
@Size(min = 8, max = 64)
private String password;
@Min(18)
private int age;
// getters/setters
}सामान्य Constraints
मानक annotations अधिकांश आवश्यकताओं को पूरा करते हैं:
@NotNull— मान null नहीं होना चाहिए@NotBlank— string में whitespace के अलावा कम-से-कम कुछ होना चाहिए@NotEmpty— collection/string खाली नहीं होना चाहिए@Size,@Min,@Max,@Email,@Pattern
@Valid से Validation शुरू करना
किसी controller में request body parameter पर @Valid annotation लगाएँ। Spring आपके method body के चलने से पहले इसे validate करता है; विफल होने पर error के साथ प्रक्रिया वहीं रोक देता है।
@PostMapping("/users")
public ResponseEntity<Void> create(@Valid @RequestBody CreateUserRequest req) {
userService.create(req);
return ResponseEntity.status(HttpStatus.CREATED).build();
}विफलता पर क्या होता है
यदि validation विफल होती है, तो Spring @RequestBody के लिए MethodArgumentNotValidException फेंकता है। डिफ़ॉल्ट रूप से इससे 400 Bad Request प्राप्त होता है, इसलिए अमान्य input आपके service layer तक नहीं पहुँचता।
कस्टम संदेश
message attribute से प्रत्येक constraint का डिफ़ॉल्ट संदेश बदलें, या resource bundle के माध्यम से i18n के लिए संदेशों को बाहरी फ़ाइल में रखें।
@Size(min = 8, message = "Password must be at least 8 characters")
private String password;Path और Query Params को Validate करना
अलग-अलग method parameters (DTO नहीं) को validate करने के लिए उन पर सीधे constraints लगाएँ और class level पर @Validated जोड़ें, ताकि method-level validation सक्रिय हो।
@Validated
@RestController
public class ProductController {
@GetMapping("/products")
public List<Product> list(@RequestParam @Min(1) int page) {
return service.page(page);
}
}नेस्टेड Validation
Validation अपने-आप nested objects तक नहीं पहुँचती। nested field पर @Valid लगाएँ, ताकि उसके constraints की भी जाँच हो।
public class OrderRequest {
@NotNull
@Valid
private AddressDto shippingAddress;
// ...
}Collections को Validate करना
Collection के प्रत्येक element को validate करने के लिए collection field पर @Valid लगाएँ; इसके बाद हर item के constraints का मूल्यांकन किया जाएगा।
public class CartRequest {
@NotEmpty
private List<@Valid LineItem> items;
// ...
}Validation Groups
Validation groups एक ही DTO को अलग-अलग संदर्भों में अलग नियम लागू करने देते हैं (जैसे create और update)। Constraints पर किसी group interface का annotation लगाएँ और validation उसी group के आधार पर करें।
public interface OnCreate {}
public class UserDto {
@Null(groups = OnCreate.class)
private Long id; // must be null when creating
}त्वरित जाँच
@Valid संबंधी अपनी समझ जाँचिए।
पुनरावलोकन
Bean Validation आपके इनपुट की सुरक्षा करता है।
spring-boot-starter-validationजोड़ें- DTO पर
@NotBlank,@Size,@Emailजैसी बाध्यताएँ घोषित करें - अनुरोध के मुख्य भाग पर
@Validलगाकर सत्यापन सक्रिय करें; विफलता पर 400 प्राप्त होता है - पैरामीटर-स्तरीय सत्यापन के लिए
@Validatedका उपयोग करें - नेस्ट किए गए ऑब्जेक्ट और संग्रहों के लिए अपना
@Validआवश्यक होता है
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 24
- पाठ
- 93
अक्सर पूछे जाने वाले प्रश्न
क्या “@Valid से बीन वैलिडेशन” पाठ निःशुल्क है?
हाँ—“@Valid से बीन वैलिडेशन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Spring Boot 4 माइक्रोसर्विस और REST API पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Spring Boot 4 माइक्रोसर्विस और REST API पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“@Valid से बीन वैलिडेशन” में मैं क्या सीखूँगा?
एनोटेशन से अनुरोध बॉडी का वैलिडेशन करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Spring Boot 4 माइक्रोसर्विस और REST API का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Spring Boot 4 माइक्रोसर्विस और REST API शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Spring Boot 4 माइक्रोसर्विस और REST API शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“@Valid से बीन वैलिडेशन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Spring Boot 4 माइक्रोसर्विस और REST API पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Spring Boot 4 माइक्रोसर्विस और REST API पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- @Valid से बीन वैलिडेशन
- कस्टम वैलिडेटर
- @ControllerAdvice और @ExceptionHandler
- समस्या विवरण (RFC 7807)