@ सेवा बनाम @ नियंत्रक
@ सेवा: वर्ग एक "बिजनेस सर्विस फेस" (कोर जे 2 ईई पैटर्न अर्थ में), या ऐसा ही कुछ है।
@ नियंत्रक: इंगित करता है कि एक एनोटेट वर्ग एक "नियंत्रक" (जैसे एक वेब नियंत्रक) है।
---------- प्रमुख स्टीरियोटाइप्स http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotyp/Component.html पर उपयोगी नोट खोजें
@ प्रस्तुतकर्ता घटक
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
public @interface Component
इंगित करता है कि एक एनोटेट वर्ग एक घटक है। एनोटेशन-आधारित कॉन्फ़िगरेशन और क्लासपैथ स्कैनिंग का उपयोग करते समय ऐसी कक्षाओं को ऑटो-डिटेक्शन के लिए उम्मीदवार माना जाता है।
अन्य श्रेणी-स्तरीय एनोटेशन को एक घटक की पहचान करने के रूप में माना जा सकता है, आमतौर पर एक विशेष प्रकार का घटक: जैसे @Repository एनोटेशन या AspectJ के @Aspect एनोटेशन।
@ सर्फेस कंट्रोलर
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Component
public @interface Controller
इंगित करता है कि एक एनोटेट वर्ग एक "नियंत्रक" (जैसे एक वेब नियंत्रक) है।
यह एनोटेशन @Component की विशेषज्ञता के रूप में कार्य करता है, कार्यान्वयन कक्षाओं के लिए क्लासपैथ स्कैनिंग के माध्यम से ऑटोडेट की अनुमति देता है। यह आमतौर पर RequestMapping एनोटेशन के आधार पर एनोटेट हैंडलर विधियों के संयोजन में उपयोग किया जाता है।
@ इंटरफ़ेस सेवा
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Component
public @interface Service
इंगित करता है कि एक एनोटेट वर्ग एक "सेवा" है, जिसे मूल रूप से डोमेन-ड्रिवेन डिज़ाइन (इवांस, 2003) द्वारा परिभाषित किया गया है, "एक इंटरफ़ेस के रूप में पेश किया जाने वाला एक ऑपरेशन जो कि बिना किसी अतिक्रमित अवस्था के साथ मॉडल में अकेला खड़ा है।" मई यह भी इंगित करता है कि एक वर्ग "बिजनेस सर्विस फेस" (कोर जे 2 ईई पैटर्न अर्थ में) या कुछ इसी तरह का है। यह एनोटेशन एक सामान्य उद्देश्य वाला स्टीरियोटाइप है और अलग-अलग टीमें अपने शब्दार्थ को संकीर्ण कर सकती हैं और उचित रूप में उपयोग कर सकती हैं।
यह एनोटेशन @Component के स्पेशलाइजेशन के रूप में कार्य करता है, कार्यान्वयन कक्षाओं के लिए क्लासपैथ स्कैनिंग के माध्यम से ऑटोडेट की अनुमति देता है।
@interface रिपोजिटरी
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Component
public @interface Repository
इंगित करता है कि एक एनोटेट वर्ग एक "रिपॉजिटरी" है, जिसे मूल रूप से डोमेन-ड्रिवेन डिज़ाइन (इवांस, 2003) द्वारा परिभाषित किया गया है, "वस्तुओं के संग्रह का अनुकरण करने वाले भंडारण, पुनर्प्राप्ति और खोज व्यवहार के लिए एक तंत्र"। पारंपरिक J2EE पैटर्न जैसे "डेटा एक्सेस ऑब्जेक्ट" को लागू करने वाली टीमें भी इस स्टीरियोटाइप को DAO वर्गों पर लागू कर सकती हैं, हालांकि ऐसा करने से पहले डेटा एक्सेस ऑब्जेक्ट और DDD- शैली रिपॉजिटरी के बीच अंतर को समझने के लिए ध्यान रखा जाना चाहिए। यह एनोटेशन एक सामान्य उद्देश्य वाला स्टीरियोटाइप है और अलग-अलग टीमें अपने शब्दार्थ को संकीर्ण कर सकती हैं और उचित रूप में उपयोग कर सकती हैं।
एक वर्ग इस प्रकार एनोटेट किया जाता है जब स्प्रिंग डेटाएस्टेसेप्शन अनुवाद के लिए योग्य होता है जब एक PersistenceExceptionTranslationPostProcessor के साथ संयोजन में उपयोग किया जाता है। टंकण, पहलुओं आदि के प्रयोजन के लिए समग्र अनुप्रयोग वास्तुकला में इसकी भूमिका के रूप में एनोटेट वर्ग को भी स्पष्ट किया जाता है।
स्प्रिंग 2.5 के रूप में, यह एनोटेशन @Component के विशेषज्ञता के रूप में भी कार्य करता है, जिससे कार्यान्वयन कक्षाओं के लिए क्लासपैथ स्कैनिंग के माध्यम से ऑटोडेट किया जा सकता है।