2011-08-22 13 views
19

मैंने Hibernate के साथ एक नई परियोजना शुरू की है। क्या हाइबरनेट एनोटेशन बेहतर विकल्प है या एचबीआरनेट एक्सएमएल मैपिंग बेहतर है?हाइबरनेट एनोटेशन या एक्सएमएल कॉन्फ़िगरेशन

मैंने एक्सएमएल कॉन्फ़िगरेशन के साथ हाइबरनेट का उपयोग किया है, लेकिन मुझे एनोटेशन के बारे में कोई जानकारी नहीं है।

  1. एनोटेशन आधारित कार्यान्वयन के लिए जाने के दौरान कोई समस्या है?
  2. एक आवेदन का रखरखाव एनोटेशन आधारित के साथ आसान या अधिक जटिल है?
  3. कौन सा बेहतर है (यानी, एनोटेशन या एक्सएमएल मैपिंग) और किसका व्यापक रूप से उपयोग किया जाता है? क्यूं कर?
  4. यदि मैं एक अलग स्तर पर एक अलग डेटाबेस का उपयोग करता हूं, यानी, उत्पादन या एकीकरण या विकास स्तर, क्या मुझे कोड बदलने के लिए जाना है?

नोट: मैं दो तकनीकों की तुलना नहीं कर रहा हूं, लेकिन मैं जानना चाहता हूं कि नवीनतम तकनीक के साथ एप्लिकेशन में कौन सा एक (यानी, दो तरीकों से बाहर) उपयोग किया जाना है।

उत्तर

20

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

उत्तर:

  1. कोई समस्या नहीं है, तो आप नवीनतम JSR 330 एपीआई (जावा के लिए निर्भरता इंजेक्शन) का उपयोग कर सकते हैं जो एक JSF के लिए एक ही एनोटेशन में मदद करता है में कामयाब रहे सेम (@managedbean के बजाय @Named उपयोग करें), SpringIoC परत और हाइबरनेट, ताकि पूरी परत आपको ढांचे के बजाय एक एकल एनोटेशन अवधारणा होगी।

  2. रखरखाव आसान है विशेष रूप से कोड, कम या कोई एक्सएमएल फाइलों और नई शिक्षा का पुन: उपयोग करना आसान है। हाइबरनेट के साथ जेपीए आधारित एनोटेशन का प्रयोग करें। आप Google में कुछ नमूना पा सकते हैं।

  3. व्यापक रूप से एक्सएमएल आधारित का उपयोग करें क्योंकि यह शुरुआत से था, लेकिन एक नए आवेदन के लिए एनोटेशन बेहतर है जो अधिक परिपक्व है।

  4. किसी भी डेटाबेस में बदलने के लिए, कोड एनोटेशन या एक्सएमएल में समान रहेगा, केवल आपको संपत्ति फ़ाइल मानों को बदलने की आवश्यकता है।

8

एनोटेशन नए हैं, और जेपीए अनुप्रयोगों के लिए करने का मानक तरीका हैं।

मुझे एक्सएमएल की तुलना में उपयोग करना आसान लगता है, लेकिन यह स्वाद और अनुभव का विषय है। उन्हें का उपयोग करके आप

  • कुछ नया सीखने होगा
  • एक जेपीए आधारित परियोजना (है कि एक और कार्यान्वयन इस्तेमाल कर सकते हैं)

मैं एक स्थिति है जहाँ मैं एक्सएमएल जरूरत में कभी नहीं किया गया है शुरू करने के लिए तैयार क्योंकि एनोटेशन ने मुझे जो कुछ भी करना चाहता था उसे करने की इजाजत नहीं दी थी।

+0

प्रतिक्रिया के लिए धन्यवाद। हमारे पास जेपीए का उपयोग करने की योजना नहीं है। प्रोजेक्ट के लंबे जीवन के लिए बेहतर तकनीक का प्रस्ताव देने से नया सीखना अलग है। – TechFind

+0

हाइबरनेट एक जेपीए कार्यान्वयन है। हाइबरनेट द्वारा उपयोग की गई टिप्पणियां जेपीए एनोटेशन हैं। –

+1

@JBNizet स्प्रिंग एप्लिकेशन में एक्सएमएल या एनोटेशन का उपयोग कर कोई प्रदर्शन अंतर है? – kamaci

1

एनोटेशन से पहले ऐसा करने का एक ही तरीका था - एक्सएमएल। यदि आप एनोटेशन का उपयोग करते हैं, तो आप सभी एक ही स्थान पर होंगे, इसलिए इसे समझना और बनाए रखना आसान होगा।

संबंधित मुद्दे