में @service और @repository एनोटेशन का आदान-प्रदान करते हैं तो क्या होगा यदि हमें डीएओ कार्यान्वयन में सेवा कार्यान्वयन और @repository
के अंदर @service
का उपयोग करने की आवश्यकता क्यों है। वसंत एमवीसी में @service
और @repository
एनोटेशन का आदान-प्रदान करते समय कोई समस्या नहीं होती है।यदि हम वसंत एमवीसी
उत्तर
documentaion@Repository
, @Service
, @Controller
के अनुसार सभी समानार्थी शब्द हैं। वे सभी @Component
एनोटेशन की सिर्फ विशेषज्ञता। इसलिए, आम तौर पर, वे दूसरे के एक आइसटेड का उपयोग किया जा सकता है। लेकिन ... आपको यह नहीं करना चाहिए।
पहला कारण: इस एनोटेशन में से कोई भी एप्लिकेशन में आपके घटक के भूमिका को स्पष्ट करता है। दिखाता है - क्या यह घटक नियंत्रक, सेवा या डेटा परत से संबंधित है।
दूसरा कारण: इनमें से कुछ एनोटेशन विभिन्न स्प्रिंग मॉड्यूल द्वारा अलग-अलग संसाधित होते हैं। उदाहरण के लिए, Spring Data JPA
@Repository
को संसाधित करेगा, और इस एनोटेशन द्वारा चिह्नित किसी भी इंटरफ़ेस को कार्यान्वित करने के साथ प्रतिस्थापित करने का प्रयास करेगा। वसंत भी इस तरह के वर्गों में स्वचालित अपवाद अनुवाद लागू करेगा। एक और उदाहरण, Spring Web MVC
प्रक्रिया @Controller
, और URL मैपिंग में इसके साथ चिह्नित कक्षाओं का उपयोग करें।
वास्तव में, भविष्य के संस्करणों में, वसंत के कुछ मॉड्यूल @Service
को विशेष रूप से संसाधित कर सकते हैं। @Component
जितना सरल नहीं है।
यह भी संभव है कि @Repository, @Service, और @Controller स्प्रिंग फ्रेमवर्क के भविष्य के रिलीज में अतिरिक्त अर्थ विज्ञान ले सकते हैं: क्यों प्रलेखन सलाह है कि है। इस प्रकार, यदि आप अपनी सेवा परत के लिए @Component या @Service का उपयोग करने के बीच चयन कर रहे हैं, तो @ सेवा स्पष्ट रूप से बेहतर विकल्प है।
यह इस बात पर निर्भर करता है कि आप ढांचे के शेष के लिए क्या उपयोग करते हैं। सिद्धांत में @Service
और @Repository
एनोटेशन के रूप में कुछ भी नहीं बदलता है मूल रूप से @Component
एनोटेशन हैं। @Controller
या @Endpoint
(स्प्रिंग डब्ल्यूएस के लिए और अधिक हैं) के लिए भी यही कहा जा सकता है।
हालांकि वे एक वर्ग (एक सेवा, एक भंडार) के इरादे को व्यक्त करते हैं और उपयोगकर्ता को यह स्पष्ट करता है कि कक्षा किस वर्ग से संबंधित है।
हालांकि यदि आप लेनदेन प्रबंधन के लिए स्प्रिंग का उपयोग भी करते हैं तो @Repository
उस वर्ग में adding exception translation के लिए एक ट्रिगर भी है (reference guide भी देखें)।
हालांकि कुछ भी में है तो इसे तोड़ने के लिए शायद कुछ बिंदु पर होगा।
- 1. हम वसंत
- 2. वसंत एमवीसी
- 3. वसंत एमवीसी
- 4. वसंत-एमवीसी
- 5. वसंत एमवीसी
- 6. वसंत एमवीसी
- 7. वसंत एमवीसी
- 8. वसंत एमवीसी
- 9. वसंत एमवीसी
- 10. वसंत एमवीसी
- 11. वसंत-एमवीसी
- 12. वसंत एमवीसी
- 13. वसंत एमवीसी
- 14. वसंत एमवीसी
- 15. वसंत एमवीसी
- 16. वसंत एमवीसी
- 17. वसंत एमवीसी
- 18. यदि हम slf4j api
- 19. वसंत बूट + वसंत एमवीसी + रत्पैक संभव है?
- 20. वसंत एमवीसी बनाम एएसपी.नेट (एमवीसी?)
- 21. वसंत :: यदि एक कांटा स्प्रिंग
- 22. ए/बी, वसंत एमवीसी
- 23. वसंत एमवीसी अनुप्रयोग JSON
- 24. एक वसंत एमवीसी नियंत्रक
- 25. वसंत एमवीसी में नियंत्रक
- 26. वसंत एमवीसी 3
- 27. वसंत एमवीसी सर्वलेट प्रारंभिक
- 28. वसंत एमवीसी इंटरसेप्टर: पोस्टहैंडल
- 29. वसंत एमवीसी बनाम सीम
- 30. वसंत एमवीसी 3
इससे शायद आपके लेन-देन खराब हो जाएंगे। एक सेवा को उन लेनदेन को पारित करने की आवश्यकता होती है जिन्हें डीएओ को प्रचार की आवश्यकता होती है। दोनों घटक हैं इसलिए एक बीन का निर्माण एक समस्या नहीं होगी। – TheLostMind