2016-03-23 9 views
28

वसंत में @ वालिद और @ वैध के बीच अंतर दो अलग-अलग सत्यापन विधियों का समर्थन करता है: वसंत सत्यापन और जेएसआर -303 बीन सत्यापन। दोनों का उपयोग वसंत सत्यापनकर्ता को परिभाषित करके किया जा सकता है जो कि बीन सत्यापनकर्ता समेत अन्य प्रतिनिधियों को प्रतिनिधि करता है। अब तक सब ठीक है।स्प्रिंग

लेकिन वास्तव में प्रमाणीकरण का अनुरोध करने के तरीकों की व्याख्या करते समय, यह एक और कहानी है। मैं इस

@RequestMapping(value = "/object", method = RequestMethod.POST) 
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) { 

की तरह टिप्पणी कर सकते हैं या इस

@RequestMapping(value = "/object", method = RequestMethod.POST) 
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) { 

यहाँ की तरह, @Valid javax.validation.Valid है, और @Validated org.springframework.validation.annotation.Validated है। बाद के लिए डॉक्स का कहना है कि JSR-303 के मान्य, सत्यापन के विनिर्देश समर्थन समूहों की

संस्करण। वसंत के जेएसआर -303 समर्थन के साथ सुविधाजनक उपयोग के लिए डिज़ाइन किया गया लेकिन जेएसआर -303 विशिष्ट नहीं है।

जो बहुत मदद नहीं करता है क्योंकि यह बिल्कुल नहीं बताता कि यह अलग कैसे है। अगर सब पर। दोनों मेरे लिए बहुत अच्छा काम कर रहे प्रतीत होते हैं।

+1

दिलचस्प हो सकता है: http://stackoverflow.com/questions/18911154/how-to-specify- validation-group-for-valid –

+1

_ "सत्यापन समूहों के विनिर्देश का समर्थन करना" _ एक बहुत स्पष्ट कथन है। – zeroflagL

+0

मुझे यह सोचना चाहिए कि वैध जेएसआर 303 सत्यापन (NotNull, आदि) के साथ कसकर जोड़ दिया गया है। जबकि आप अन्य सत्यापन/समूह बना सकते हैं और उन्हें मान्य में चेक किया है। – Atul

उत्तर

25

जैसा कि आपने प्रलेखन से उद्धृत किया है, @Validated को "सत्यापन समूह" यानी मान्य फ़ील्ड में फ़ील्ड का समूह समर्थन करने के लिए जोड़ा गया था। इसका उपयोग बहु-चरण रूपों में किया जा सकता है जहां आप नाम, ईमेल इत्यादि को पहले चरण में और फिर निम्नलिखित चरणों में अन्य फ़ील्ड मान्य कर सकते हैं।

कारण यह @Valid एनोटेशन में क्यों नहीं जोड़ा गया था क्योंकि यह जावा समुदाय प्रक्रिया (जेएसआर -303) का उपयोग करके मानकीकृत है, जिसमें समय लगता है और वसंत डेवलपर्स लोगों को जल्द ही इस कार्यक्षमता का उपयोग करने की अनुमति देना चाहते थे।

एनोटेशन अस्तित्व में आने के तरीके को देखने के लिए this jira ticket पर जाएं।