दिलचस्प पोस्ट
WPF आवेदन के लिए डीपीआई जागरूकता अक्षम करें मैं जावास्क्रिप्ट में वर्तमान लाइन संख्या कैसे निर्धारित करूं? पायथन 3.0.3.1.3.2 में "मान त्रुटि: प्रारूप में शून्य लंबाई फ़ील्ड नाम" त्रुटि क्या मैं दूसरे के शीर्ष पर एक WPF विंडो को ओवरले कर सकता हूँ? अस्थायी मृत क्षेत्र क्या है? जेपीए / हाइबरनेट स्टेटिक मेटामेडल विशेषताएँ नहीं आबादी – NullPointerException तर्कों को अग्रेषित करने के लिए std :: forward का उपयोग कब करना है? मैं सी ++ / लिनक्स में डायरेक्टरी ट्री कैसे बना सकता हूं? जांचें कि कोई सरणी दूसरे का सबसेट है या नहीं पायथन – लिखना () बनाम लेखन () और संरेखित तार Iframe सामग्री क्रॉस-डोमेन की शैली को बदलने के लिए कैसे? Google साइन इन एपीके पर काम नहीं कर रहा है बिना सीएक्स उपयोग और रैम उपयोग कैसे करें? वीएस 2010 और आईई 10 आईसीएक्सएलआर.एक्सए के क्रियान्वयन के लिए स्क्रिप्ट डीबगर को संलग्न करना विफल हुआ गैर-पाया गया कुंजी के लिए डिफ़ॉल्ट मान वापस करने के लिए हैशमैप?

एक्सएमएल विन्यास बनाम एनोटेशन आधारित कॉन्फ़िगरेशन

कुछ बड़ी परियोजनाओं में मैं हाल ही में काम कर रहा हूं, ऐसा लगता है कि यह एक या दूसरे (एक्सएमएल या एनोटेशन) का चयन करने के लिए तेजी से महत्वपूर्ण है। परियोजनाएं बढ़ने पर, रखरखाव के लिए स्थिरता बहुत महत्वपूर्ण है

मेरा सवाल है, लोग क्या पसंद करते हैं क्या आप एक्सएमएल आधारित या एनोटेशन पसंद करते हैं? अथवा दोनों? हर कोई XML कॉन्फ़िगरेशन नरक के बारे में बात करता है और एनोटेशन कैसे उत्तर देता है, एनोटेशन कॉन्फ़िगरेशन नरक के बारे में क्या?

Solutions Collecting From Web of "एक्सएमएल विन्यास बनाम एनोटेशन आधारित कॉन्फ़िगरेशन"

टिप्पणियों का उनका उपयोग है, लेकिन वे XML कॉन्फ़िगरेशन को मारने के लिए एक रजत बुलेट नहीं हैं। मैं दो मिश्रण की सलाह देते हैं!

उदाहरण के लिए, यदि स्प्रिंग का उपयोग करना है, तो यह आपके ऐप्लिकेशन के निर्भरता इंजेक्शन भाग के लिए XML का उपयोग करने के लिए पूरी तरह से सहज है। यह कोड की निर्भरता को उस कोड से दूर ले जाती है जो इसका प्रयोग करेंगे, इसके विपरीत, कोड में कुछ प्रकार की एनोटेशन का उपयोग करके निर्भरता की आवश्यकता होती है, कोड को इस स्वत: कॉन्फ़िगरेशन से अवगत करा देता है।

हालांकि, ट्रांसेक्शनल मैनेजमेंट के लिए एक्सएमएल का उपयोग करने के बजाय, एक एनोटेशन के साथ व्यवहार के रूप में एक विधि को चिन्हांकित करना सही समझ में आता है, क्योंकि यह जानकारी एक प्रोग्रामर शायद जानना चाहती है लेकिन एक इंटरफ़ेस को SubtypeX के बजाय एक subtypey के रूप में इंजेक्ट किया जा रहा है जिसे क्लास में शामिल नहीं किया जाना चाहिए, क्योंकि यदि अब आप SubtypeX इंजेक्ट करना चाहते हैं, तो आपको अपना कोड बदलना होगा, जबकि वैसे भी आपका इंटरफ़ेस अनुबंध होता है, इसलिए XML के साथ, आपको बस XML मैपिंग को बदलना होगा और यह ऐसा करने के लिए काफी तेज और दर्द रहित है।

मैंने जेपीए एनोटेशन का इस्तेमाल नहीं किया है, इसलिए मैं नहीं जानता कि वे कितने अच्छे हैं, लेकिन मैं तर्क देता हूं कि एक्सएमएल में डेटाबेस से बीन्स के मैपिंग को छोड़ना भी अच्छा है, क्योंकि वस्तु को इसकी परवाह नहीं होनी चाहिए कि इसकी सूचना कहां से हुई , यह सिर्फ इसकी जानकारी के साथ क्या कर सकता है पर ध्यान देना चाहिए लेकिन अगर आपको जेपीए (मेरे पास इसके साथ कोई जुड़ाव नहीं है), हर तरह से, इसके लिए जाएं।

सामान्य में: यदि कोई एनोटेशन कार्यक्षमता प्रदान करता है और अपने आप में एक टिप्पणी के रूप में कार्य करता है, और इस विशिष्ट टिप्पणी के बिना सामान्य रूप से कार्य करने के लिए कोड को कुछ विशिष्ट प्रक्रिया में टाई नहीं करता, तो एनोटेशन के लिए जाएं। उदाहरण के लिए, ट्रांसेक्शनल होने के रूप में चिह्नित लेन-देन विधि अपने ऑपरेटिंग लॉजिक को नहीं मारती, और साथ ही अच्छी कोड-स्तरीय टिप्पणी के रूप में भी काम करती है। अन्यथा, यह जानकारी संभवत: एक्सएमएल के रूप में व्यक्त की जाती है, क्योंकि हालांकि यह अंततः कोड को कैसे प्रभावित करेगा, यह कोड की मुख्य कार्यक्षमता को नहीं बदलेगा, और इसलिए स्रोत फाइलों में नहीं है

यहां एक व्यापक मुद्दा है, जो बाह्यमार्ग बनाम इनलाइन किए गए मेटा-डेटा का है। यदि आपका ऑब्जेक्ट मॉडल केवल एक ही तरीके से कायम रहने वाला है, तो मेटा-डेटा (यानी एनोटेशन) को रेखांकित करना अधिक कॉम्पैक्ट और पठनीय है।

अगर, हालांकि, आपके ऑब्जेक्ट मॉडल को अलग-अलग अनुप्रयोगों में इस तरह से पुन: उपयोग किया गया था कि प्रत्येक एप्लिकेशन अलग-अलग तरीकों से मॉडल को जारी रखना चाहता था, फिर मेटा-डाटा (यानी एक्सएमएल डिस्क्रिप्टर) को बाहरी करना अधिक उपयुक्त हो जाता है

न तो एक बेहतर है, और इसलिए दोनों समर्थित हैं, हालांकि एनोटेशन अधिक फैशनेबल हैं नतीजतन, जेपीए जैसे नए हेयर-ऑन-फायर फ्रेमवर्क उन पर ज्यादा जोर देते हैं। देशी सीतनिद्रा में होना दोनों की तरह अधिक परिपक्व एपीआई, क्योंकि यह ज्ञात है कि न तो एक पर्याप्त है

मैं हमेशा एनोटेशन के बारे में सोचता हूं कि किस प्रकार के क्लास में सक्षम है, या यह अन्य लोगों के साथ कैसे इंटरैक्ट करता है।

स्प्रिंग एक्सएमएल कॉन्फ़िगरेशन मेरे पास दूसरी तरफ है, कॉन्फ़िगरेशन

उदाहरण के लिए, प्रॉक्सी के आईपी और पोर्ट के बारे में जानकारी, निश्चित रूप से एक XML फ़ाइल में जा रही है, यह रनटाइम कॉन्फ़िगरेशन है

@Autowire का उपयोग करना, @Element @Autowire , यह इंगित करने के लिए कि कक्षा के साथ क्या करना है, एनोटेशन का अच्छा उपयोग है।

@Webservice annotation में यूआरएल को @Webservice बुरा शैली है

लेकिन यह सिर्फ मेरी राय है। इंटरैक्शन और कॉन्फ़िगरेशन के बीच की पंक्ति हमेशा स्पष्ट नहीं होती है।

मैं कुछ वर्षों के लिए वसंत का उपयोग कर रहा हूं और आवश्यक XML की मात्रा निश्चित रूप से कठिन हो रही है स्प्रिंग 2.5 में नए एक्सएमएल स्कीमा और एनोटेशन समर्थन के बीच मैं आमतौर पर ये काम करता हूं:

  1. रोटोजीटरी, @ सेवा या @ कम्पेनेंट का उपयोग करने वाले ऑटोोलोड कक्षाओं के लिए "घटक-स्कैन" का उपयोग करना मैं आमतौर पर हर बीन को एक नाम देता हूं और फिर @ रिसोर्स का उपयोग करके उन्हें तार देता हूं। मुझे लगता है कि यह पाइपलाइन बहुत अक्सर बदल नहीं करता है इसलिए एनोटेशन अर्थ बनाते हैं।

  2. सभी एओपी के लिए "एओपी" नामस्थान का उपयोग करना यह वास्तव में महान काम करता है मैं अभी भी लेनदेन के लिए इसका इस्तेमाल करता हूं, क्योंकि @ ट्रांन्सैक्शनल को सभी जगह पर खींच कर खींचें। आप किसी भी सेवा या रिपॉजिटरी के तरीकों के लिए नामित बिन्दु बना सकते हैं और बहुत जल्द सलाह लागू कर सकते हैं।

  3. मैं हाइबरनेट जेपावेंडर एडाप्टर के साथ स्थानीय कंटैनेरएन्टीटीएमएनेजरफिचरबीन का उपयोग करता हूं ताकि सीतनिद्रा में होना को कॉन्फ़िगर किया जा सके। इससे सीतनिद्रा में होना आसानी से क्लासपाथ पर @ एंटीटी कक्षाओं को स्वत: पता चलता है। तब मैं "फ़ैक्टरी-बीन" और "कारखाने-विधि" का उपयोग करते हुए नामित सत्र फीचर बीन को एलसीईएमएफबी के संदर्भ में बना देता हूं।

मुझे लगता है कि दृश्यता एक XML आधारित दृष्टिकोण के साथ एक बड़ी जीत है मुझे पता है कि एक्सएमएल वास्तव में वह बुरा नहीं है, जो एक्सएमएल दस्तावेजों को नेविगेट करने के लिए विभिन्न उपकरण दिए गए हैं (अर्थात विजुअल स्टूडियो + रेसरार की फ़ाइल संरचना विंडो)।

आप निश्चित रूप से एक मिश्रित दृष्टिकोण ले सकते हैं, लेकिन यह मेरे लिए खतरनाक लगता है, क्योंकि संभावित रूप से, यह एक परियोजना पर नए डेवलपर्स के लिए यह पता लगाना मुश्किल होगा कि विभिन्न ऑब्जेक्ट कैसे कॉन्फ़िगर किए गए हैं या मैप किए गए हैं।

मुझे नहीं पता; अंत में XML हेल्म मेरे लिए यह सब बुरा नहीं लगता

यह उस सब पर निर्भर करता है जो आप कॉन्फ़िगर करना चाहते हैं, क्योंकि कुछ विकल्प हैं जो एओटेशन के साथ कॉन्फ़िगर नहीं किए जा सकते हैं। अगर हम इसे एनोटेशन के पक्ष से देखते हैं:

  • प्लस: एनोटेशन कम बातूनी हैं
  • शून्य: टिप्पणी कम दिखाई देती हैं

यह आप पर निर्भर है कि क्या अधिक महत्वपूर्ण है …

सामान्य तौर पर मैं एक तरह से चुनने और उत्पाद के कुछ बंद हिस्से में इसका इस्तेमाल करने की सलाह दूंगा …

(कुछ अपवादों के साथ: उदाहरण के लिए यदि आप XML आधारित कॉन्फ़िगरेशन चुनते हैं, तो @ एटोवायर एनोटेशन का उपयोग करना ठीक है। यह मिश्रण है, लेकिन यह एक पठनीयता और रखरखाव दोनों को मदद करता है)

एक एनोटेशन-केवल दृष्टिकोण का उपयोग करने में एक महत्वपूर्ण हिस्सा यह है कि "बीन नाम" की अवधारणा अधिक या कम हो जाती है (तुच्छ हो जाती है)

स्प्रिंग में "बीन नाम" कार्यान्वयन कक्षाओं पर एक अतिरिक्त स्तर का अमूर्त है। XML बीन्स के साथ परिभाषित किया जाता है और उनकी बीन नाम के संदर्भ में संदर्भित होता है। एनोटेशन के साथ वे उनके वर्ग / इंटरफ़ेस से संदर्भित हैं। (हालांकि बीन नाम मौजूद है, आपको इसकी जानकारी नहीं है)

मुझे दृढ़ता से विश्वास है कि अनावश्यक निकास से छुटकारा पाने से सिस्टम को सरल बनाते हैं और उत्पादकता में सुधार होता है बड़ी परियोजनाओं के लिए मुझे लगता है कि एक्सएमएल से छुटकारा पाने का फायदा पर्याप्त हो सकता है।

मैं गलत हो सकता है, लेकिन मैंने टिप्पणी की (जावा के @टैग और सी # के [एट्रिब्यूट] के रूप में) एक संकलित समय विकल्प थे, और एक्सएमएल एक रन-टाइम ऑप्शन था। मेरे लिए यह कहते हैं कि ये समकक्ष नहीं हैं और विभिन्न पेशेवरों और विपक्ष हैं।

मुझे यह भी लगता है कि मिश्रण सबसे अच्छी बात है, लेकिन यह कॉन्फ़िगरेशन पैरामीटर के प्रकार पर भी निर्भर करता है। मैं सीम प्रोजेक्ट पर काम कर रहा हूं जो स्प्रिंग का भी उपयोग करता है और मैं आमतौर पर इसे विभिन्न विकास और परीक्षण सर्वरों पर लगाया जाता है तो मैंने विभाजित किया है:

  • सर्वर विशिष्ट विन्यास (सर्वर पर संसाधनों के लिए पूर्ण पथ की तरह): स्प्रिंग एक्सएमएल फ़ाइल
  • दूसरे सेम के सदस्य के रूप में बीन्स को इंजेक्शन करना (या कई बीन्स में स्प्रिंग एक्सएमएल परिभाषित मूल्य का पुन: उपयोग करना): एनोटेशन

महत्वपूर्ण अंतर यह है कि आपको सभी बदलते हुए सर्वर-विशिष्ट कॉन्फ़िगरेशन के लिए कोड को पुनः कंपाइल करने की ज़रूरत नहीं है, बस एक्सएमएल फाइल को संपादित करें इसमें भी फायदा है कि टीम के सदस्यों द्वारा कुछ कॉन्फ़िगरेशन बदलाव किए जा सकते हैं जो सभी कोड शामिल नहीं समझते हैं।

रिफैक्टरिंग और अन्य कोड परिवर्तन की तुलना में तुलना करने के लिए अन्य पहलू भी हैं एक्सएमएल का उपयोग करते समय रीफैक्चरिंग करने के लिए सीरस प्रयास होता है क्योंकि आपको सभी XML सामग्री का ध्यान रखना पड़ता है लेकिन एनोटेशन का उपयोग करते समय यह आसान है

मेरा पसंदीदा तरीका (या न्यूनतम) एनोटेशन के बिना जावा आधारित कॉन्फ़िगरेशन है I http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-java

डि कंटेनर के दायरे में, मैं एनोटेशन के आधार पर विचार करता हूं कि डीआई जावा एनोटेशन का उपयोग करने के लिए दुरुपयोग कर रहा है। यह कह कर, मैं इसे अपनी परियोजना में व्यापक रूप से उपयोग करने की अनुशंसा नहीं करता हूं अगर आपकी परियोजना को वास्तव में डि कंटेनर की शक्ति की आवश्यकता है, तो मैं एक्सएमएल आधारित कॉन्फ़िगरेशन विकल्प के साथ स्प्रिंग आईओसी का उपयोग करने की सिफारिश करेगा।

यदि यह केवल यूनिट-टेस्ट के लिए है, तो डेवलपर्स को अपने कोडिंग में निर्भरता इंजेक्शन पैटर्न को लागू करना चाहिए और ओजॉयक या जेएमक जैसी उपहास उपकरणों से फायदा उठाने के लिए निर्भरता को खारिज करना चाहिए।

आपको डि कंटेनर का गलत संदर्भ में उपयोग करने से बचने का प्रयास करना चाहिए।

कॉन्फ़िगरेशन जानकारी जो हमेशा किसी विशिष्ट जावा घटक (कक्षा, विधि या क्षेत्र) से जुड़ी होती है, वह टिप्पणी के द्वारा प्रतिनिधित्व करने के लिए एक अच्छा उम्मीदवार है। इस मामले में टिप्पणियां विशेष रूप से अच्छी तरह से काम करती हैं जब कॉन्फ़िगरेशन कोड के उद्देश्य के लिए मुख्य होता है। टिप्पणियों पर सीमाओं के कारण, यह भी सबसे अच्छा होता है जब प्रत्येक घटक के पास केवल एक विन्यास हो। यदि आपको कई विन्यासों से निपटने की ज़रूरत है, विशेषकर उन लोगों पर जो कि एक एनोटेशन वाले जावा वर्ग के बाहर कुछ भी सशर्त है, तो एनोटेशन समस्या हल करने की अपेक्षा अधिक समस्याएं पैदा कर सकते हैं। अंत में, एनोटेशन जावा स्रोत कोड को फिर से कंपाइल करने के बिना संशोधित नहीं किया जा सकता है, इसलिए रनटाइम पर पुन: कॉन्फ़िगर करने की आवश्यकता कुछ भी एनोटेशन का उपयोग नहीं कर सकते।

कृपया निम्नलिखित लिंक देखें वे भी बहुत उपयोगी हो सकते हैं

  1. एनोटेशन बनाम एक्सएमएल, फायदे और नुकसान
  2. http://www.ibm.com/developerworks/library/j-cwt08025/

यह क्लासिक 'कॉन्फ़िगरेशन बनाम कन्वेंशन' प्रश्न है व्यक्तिगत स्वाद ज्यादातर मामलों में जवाब तय करता है हालांकि, व्यक्तिगत तौर पर मैं कन्वेंशन पर कॉन्फ़िगरेशन (यानी एक्सएमएल आधारित) पसंद करता हूं आईएमओ आईडीई के कुछ एक्सएमएल नरक लोगों पर काबू पाने के लिए पर्याप्त रूप से पर्याप्त रूप से मजबूत है, वे अक्सर डब्ल्यू / बिल्डिंग को संबद्ध करते हैं और एक्सएमएल आधारित दृष्टिकोण बनाए रखते हैं। अंत में, मुझे कॉन्फ़िगरेशन के फायदे मिलते हैं (जैसे कि एक्सएमएल कॉन्फ़िग फ़ाइल बनाने, बनाए रखने और बनाए रखने के लिए उपयोगिताओं का निर्माण), लंबी अवधि में कन्वेंशन से अधिक होता है

मैं दोनों का उपयोग करता हूँ ज्यादातर एक्सएमएल, लेकिन जब मेरे पास बीन्स का गुच्छा होता है जो एक सामान्य वर्ग से प्राप्त होता है और सामान्य गुण होते हैं, तो मैं उन लोगों के लिए एनोटेशन का उपयोग करता हूं, सुपरक्लस में, इसलिए मुझे प्रत्येक बीन के लिए समान गुण सेट नहीं करना पड़ता है क्योंकि मैं थोड़ा सा नियंत्रण विचित्र हूँ, मैं बस ऑटोॉवेयर सामान के बजाय @ रिसोर्स (नाम = "संदर्भित बीन") का उपयोग करता हूं (और यदि मुझे कभी भी एक ही वर्ग की दूसरी बीन को मूल रूप से संदर्भित किया गया है, तो मुझे बहुत परेशानी बचाई) ।

मेरे अनुभव से एनोटेशन कॉन्फ़िगरेशन के कुछ पेशेवर और विपक्ष हैं:

  • यह जेपीए कॉन्फ़िगरेशन की बात आती है, क्योंकि यह एक बार किया जाता है और आम तौर पर अक्सर बदल नहीं होता है, मैं एनोटेशन कॉन्फ़िगरेशन पर चिपका देना पसंद करता हूं। कॉन्फ़िगरेशन की एक बड़ी तस्वीर देखने की संभावना के बारे में चिंता हो सकती है – इस स्थिति में मैं एमएसयूएलएल वर्कर्बैंच आरेख का उपयोग करता हूं।
  • एक्सएमएल कॉन्फ़िगरेशन आवेदन की एक बड़ी तस्वीर प्राप्त करने के लिए बहुत अच्छा है, लेकिन रनटाइम तक कुछ त्रुटियों को खोजने के लिए बोझल हो सकता है इस मामले में स्प्रिंग @ कॉन्फ़िगरेशन एनोटेशन एक बेहतर विकल्प के रूप में लगता है क्योंकि इससे आपको एक बड़ी तस्वीर भी दिखाई देती है और यह भी संकलन समय पर कॉन्फ़िगरेशन को मान्य करने की अनुमति देती है।
  • स्प्रिंग कॉन्फ़िगरेशन के लिए मैं दोनों तरीकों को गठबंधन करना पसंद करता हूं: डेटासॉर्स और स्प्रिंग कॉन्फिगरेशन सामान जैसे संदर्भ के लिए सेवाओं और क्वेरी इंटरफेस और एक्सएमएल कॉन्फिगरेशन के साथ @ कॉन्फ़िगरेशन एनोटेशन का उपयोग करें: घटक-स्कैन बेस-पैकेज = "…"
  • लेकिन एक्सएमएल कॉन्फ़िगरेशन बिट्स जावा एनोटेशन जब यह प्रवाह विन्यास (स्प्रिंग वेब फ्लो या लेक्साडेन वेब फ्लो) की बात आती है, क्योंकि यह पूरे व्यवसाय प्रक्रिया की एक बड़ी तस्वीर देखने के लिए बेहद महत्वपूर्ण है और यह एनोटेशन दृष्टिकोण के साथ कार्यान्वित करने के लिए बोझिल लगता है

मैं दोनों तरीकों को जोड़ना पसंद करता हूं – जावा एनोटेशन और आवश्यक XML न्यूनतम जो कॉन्फ़िगरेशन नरक को कम करता है

स्प्रिंग फ्रेमवर्क के लिए मुझे @ कॉम्पोनेंट एनोटेशन का उपयोग करने और "घटक-स्कैन" विकल्प सेट करने के लिए सक्षम होने का विचार पसंद है ताकि स्प्रिंग मेरे जावा सेम को पा सके ताकि मुझे एक्सएमएल में अपनी सभी बीन्स को परिभाषित न करें। JavaConfig। उदाहरण के लिए, स्टेटलेस सिंगलटन जावा बीन्स के लिए जिसे अन्य वर्गों (आदर्श रूप से एक इंटरफेस के माध्यम से) के लिए वायर्ड होना चाहिए, यह दृष्टिकोण बहुत अच्छी तरह से काम करता है। सामान्य तौर पर, स्प्रिंग सेम के लिए मेरे पास स्प्रिंग एक्सएमएल डीएसएल से बीन्स को परिभाषित करने के लिए सबसे अधिक भाग चले गए हैं, और अब जावा कोंफिफ़ और स्प्रिंग एनोटेशंस के उपयोग के पक्ष में हैं क्योंकि आप अपने कॉन्फ़िगरेशन की कुछ समय की जांच कर रहे हैं और कुछ रिफैक्टरिंग समर्थन जो आपको डॉन ' स्प्रिंग एक्सएमएल कॉन्फ़िगरेशन के साथ मिलना मैं कुछ दुर्लभ मामलों में मिश्रण करता हूं जहां मैंने पाया है कि जावा कॉन्फिफ / एनोटेशन XML कॉन्फ़िगरेशन का उपयोग करते हुए उपलब्ध नहीं कर सकते हैं।

सीतनिद्रा में होना ORM के लिए (अब तक जेपीए नहीं इस्तेमाल किया है) मैं अभी भी एक्सएमएल मैपिंग फाइलों को पसंद करता है क्योंकि कुछ हद तक डोमेन मॉडल कक्षाओं में एनोटेशन स्वच्छ वास्तुकला का उल्लंघन करता है जो कि पिछले कुछ वर्षों में मैंने एक लेयरिंग वास्तुशिल्प शैली को अपनाया है I उल्लंघन इसलिए होता है क्योंकि इसकी आवश्यकता होती है कोर लेयर को स्थिरता से संबंधित चीजें जैसे कि हाइबरनेट या जेपीए पुस्तकालयों पर निर्भर होने की आवश्यकता होती है और यह डोमेन मॉडल POJO को थोड़ा कम दृढ़ता अज्ञानी बनाता है वास्तव में कोर लेयर किसी भी अन्य बुनियादी ढांचे पर बिल्कुल निर्भर नहीं है।

हालांकि, अगर क्लीन आर्किटेक्चर आपकी "चाय का प्याला" नहीं है तो मैं देख सकता हूं कि अलग-अलग XML मैपिंग फाइलों पर डोमेन मॉडल कक्षाओं में हाइबरनेट / जेपीए एनोटेशन का उपयोग करने के निश्चित रूप से लाभ (जैसे सुविधा और रखरखाव) हैं।