स्प्रिंग बूट एप्लिकेशन में कस्टम सत्यापन कैसे करें

May 02 2023
स्प्रिंग बूट में, सत्यापन यह जाँचने की प्रक्रिया को संदर्भित करता है कि क्या एप्लिकेशन द्वारा प्राप्त इनपुट डेटा एप्लिकेशन द्वारा परिभाषित कुछ नियमों या मानदंडों को पूरा करता है। सत्यापन मजबूत और विश्वसनीय अनुप्रयोगों के निर्माण का एक अनिवार्य हिस्सा है क्योंकि यह त्रुटियों को रोकने और डेटा की स्थिरता और अखंडता सुनिश्चित करने में मदद करता है।

स्प्रिंग बूट में , सत्यापन यह जाँचने की प्रक्रिया को संदर्भित करता है कि क्या एप्लिकेशन द्वारा प्राप्त इनपुट डेटा एप्लिकेशन द्वारा परिभाषित कुछ नियमों या मानदंडों को पूरा करता है। सत्यापन मजबूत और विश्वसनीय अनुप्रयोगों के निर्माण का एक अनिवार्य हिस्सा है क्योंकि यह त्रुटियों को रोकने और डेटा की स्थिरता और अखंडता सुनिश्चित करने में मदद करता है।

स्प्रिंग बूट बीन सत्यापन ढांचे का उपयोग करके सत्यापन के लिए अंतर्निहित समर्थन प्रदान करता है, यह ढांचा एनोटेशन के कुछ सेट को परिभाषित करता है।

कुछ सामान्य सत्यापन एनोटेशन हैं:

  • @NotNul: दिया गया क्षेत्र खाली नहीं होना चाहिए।
  • @NotEmpty: दिया गया क्षेत्र खाली नहीं होना चाहिए।
  • @NotBlank: दिया गया स्ट्रिंग फ़ील्ड खाली स्ट्रिंग नहीं होना चाहिए।
  • @Minऔर @Max: दिया गया संख्यात्मक क्षेत्र केवल तभी मान्य होता है जब इसका मान एक निश्चित मान से ऊपर या नीचे हो।
  • @Pattern: दिया गया स्ट्रिंग फ़ील्ड केवल तभी मान्य होता है जब वह एक निश्चित नियमित अभिव्यक्ति से मेल खाता हो।
  • @Email: दिया गया स्ट्रिंग फ़ील्ड एक मान्य ईमेल पता होना चाहिए।

सत्यापन के लिए अनिवार्य निर्भरता:

कर्मचारी.जावा

कर्मचारी नियंत्रक

विधि पैरामीटर और फ़ील्ड पर एनोटेशन जोड़ें @Validजिसे हम सत्यापित करना चाहते हैं। @ वैलिड एनोटेशन स्प्रिंग बूट को हमारे द्वारा निर्दिष्ट सत्यापन बाधाओं के आधार पर इनपुट डेटा को स्वचालित रूप से मान्य करने के लिए कहता है।

उपरोक्त कार्यान्वयन का परीक्षण:

उपरोक्त में, नाम और ईमेल फ़ील्ड निर्दिष्ट मानदंडों से मेल नहीं खा रहे हैं

सभी त्रुटियों को एकत्र करने के लिए, हमारे पास एक "ExceptionHandler" होना चाहिए और यह नीचे दिया गया है:

मैं MethodArgumentNotValidException अपवाद हैंडलर के माध्यम से संभाल रहा हूं।

पथ चर और अनुरोध Params मान्य करना:

पथ चर और अनुरोध पैरामीटर मान्य करना थोड़ा अलग तरीके से काम करता है।

हम स्प्रिंग नियंत्रक में विधि पैरामीटर पर सीधे एक बाधा एनोटेशन @Min जोड़ रहे हैं :

यदि हम अपवाद हैंडलर विधि के बिना एप्लिकेशन को चलाने का प्रयास करते हैं, तो यह ConstaintViolationException को फेंक देगा। अपवाद को इकट्ठा करने के लिए, हमें नीचे दी गई विधि को जोड़ने की आवश्यकता है:

@ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity<String> handleValidationError(ConstraintViolationException exception) {

  return new ResponseEntity<>("not valid due to validation error: " + exception.getMessage(), HttpStatus.BAD_REQUEST);
}

हम अनुरोध Params के लिए भी उपरोक्त प्रक्रिया का उपयोग कर सकते हैं

कस्टम सत्यापन बनाना

एक कस्टम सत्यापन वर्ग बनाएँ

लक्ष्य फ़ील्ड निर्दिष्ट करने के लिए @Target एनोटेशन जोड़ें, प्रतिधारण नीति निर्दिष्ट करने के लिए @Retention, कस्टम बाधा बनाने के लिए @Constraint जोड़ें।

@ लक्ष्य एनोटेशन एक मानक जावा एनोटेशन है और एनोटेशन के उपयोग को विशिष्ट प्रकार के तत्वों तक सीमित करने के लिए उपयोग किया जाता है।

EmployeeTypeValidator वर्ग बनाएँ जो क्षेत्र में दिए गए डेटा को मान्य करने के लिए बाधा सत्यापनकर्ता को लागू करता है या नहीं:

ValiadeEmployeeType क्लास को फ़ील्ड के ऊपर एनोटेशन के रूप में जोड़ें जिसके लिए हमने कस्टम सत्यापन लागू किया है।

हमने कर्मचारी प्रकार के लिए कस्टम सत्यापन लागू किया, कर्मचारी प्रकार या तो स्थायी या संविदात्मक होना चाहिए।

यदि हम कर्मचारी प्रकार के लिए उल्लेखित के अलावा कोई अन्य पाठ जोड़ते हैं, तो यह नीचे दिए अनुसार एक त्रुटि संदेश देता है:

उपरोक्त में, "कर्मचारी प्रकार" को यादृच्छिक पाठ के रूप में दिया गया है।

यदि हम कर्मचारी प्रकार को स्थायी या संविदात्मक के रूप में पास करते हैं, तो आउटपुट होगा:

अन्य स्प्रिंग बूट अवधारणाओं के लिए लिंक देखें:

स्प्रिंग बूट के साथ स्प्रिंग सिक्योरिटी रोल आधारित एक्सेस

JWT के साथ वसंत सुरक्षा प्रमाणीकरण और प्राधिकरण

स्प्रिंग एओपी ट्यूटोरियल

स्प्रिंग बूट लॉगिंग ट्यूटोरियल

स्प्रिंग बूट में केंद्रीकृत विन्यास

जेविनपॉल डोमेनिको निकोली ट्रे हफिन अरसलान अहमद सोमा मेहमत ओजकाया शिक्षाप्रद टीम