2010-11-25 18 views
31

मैं विभिन्न जावा ढांचे के साथ बहुत उलझन में हूं। मैं कुछ जरूरी वेब-सेवा प्रदान करने के लिए जावा सर्वर प्रोजेक्ट बनाना चाहता हूं, लेकिन मुझे नहीं पता कि मुझे कौन सा ढांचा चुनना चाहिए। जेएसएफ, ईजेबी, हाइबरनेट और वसंत के बीच क्या अंतर है? कृपया उन्हें और समझने में मेरी सहायता करें।ईजेबी, हाइबरनेट, वसंत और जेएसएफ के बीच क्या अंतर है?

+5

+14 एक बर्गर, एक विमान और घोड़े के बीच के अंतर के बारे में पूछने के लिए एक प्रश्न के लिए? –

+6

@ माइकललाफर्ग्यू आप जहां खाते हैं, इस पर निर्भर करते हुए, एक बर्गर और घोड़े के बीच जितना अंतर हो उतना अंतर नहीं हो सकता है। –

+2

@ जेसनसी आपको वहां एक बिंदु मिला;) –

उत्तर

49

ये विभिन्न परतों के लिए ढांचे हैं, जो हाइबरनेट या जेपीए कार्यान्वयन का उपयोग कर सकते हैं।

  • JSF, दृश्य (वेब) परत के लिए है यह एक घटक उन्मुख ढांचा है (एक पृष्ठ के हर हिस्से एक घटक है, यह राज्य है) विकेट या टेपेस्ट्री की तरह, और वसंत MVC की तरह कार्रवाई चौखटे के विपरीत , Struts या धारियों

    पुस्तकें: Core JavaServer Faces (3rd Edition)
    ट्यूटोरियल: CoreServlets.com

  • EJB 3.x एक कंटेनर कि +०१२३३७१८४९१ का हिस्सा है हैढेर। यह निर्भरता इंजेक्शन और बीन लाइफसाइक्ल प्रबंधन जैसी चीजें करता है। , एक EJB 3 in Action

  • स्प्रिंग एक सरल मुख्य वर्ग भी एक कंटेनर है, लेकिन वसंत किसी भी जावा कोड में चला सकते हैं (: JavaEE 6 Tutorial: EJB
    पुस्तकें: आप आम तौर पर EJB3

    ट्यूटोरियल के लिए एक पूर्ण JavaEE अनुप्रयोग सर्वर की जरूरत है एप्लेट, एक वेब ऐप या जावाईई एंटरप्राइज़ ऐप)। स्प्रिंग लगभग सब कुछ EJB कर सकते हैं और एक बहुत कुछ कर सकते हैं, लेकिन मैं कहना चाहता हूँ यह निर्भरता इंजेक्शन और गैर दखल लेनदेन प्रबंधन

    Online Reference (उत्कृष्ट)
    पुस्तकें के लिए सबसे प्रसिद्ध है: मैं एक अच्छा अंग्रेज़ी नहीं पा सके स्प्रिंग 3.x पर किताब, हालांकि कई हाइबरनेट बनाने

  • में हैं पहली बड़ी ORM (संबंधपरक नक्शाकार वस्तु) जावा प्लेटफार्म पर, और इस तरह के रूप में बहुत प्रेरित किया है जेपीए (जो का हिस्सा है था ईजेबी 3 मानक लेकिन ईजेबी कंटेनर के बिना इस्तेमाल किया जा सकता है)। मैं जेपीए के खिलाफ कोडिंग और केवल एक प्रदाता के रूप में उपयोग करने का सुझाव हाइबरनेट, कि जिस तरह से आप आसानी से EclipseLink आदि करने के लिए स्विच कर सकते हैं

    पुस्तकें होगा: Pro JPA 2: Mastering the Java™ Persistence API (हाइबरनेट विशेष नहीं),
    Java Persistence with Hibernate

  • (थोड़ा पुराने हो रही है)
+0

धन्यवाद सहित लगभग किसी भी अन्य तकनीक के साथ अच्छी तरह से एकीकृत करता है, मैं इसकी सराहना करता हूं – user261002

+8

स्पष्ट रूप से बताने के लिए, वसंत को केवल JVM की आवश्यकता है जहां ईजेबी को एक पूर्ण ऐप सर्वर की आवश्यकता होती है – boardtc

+0

@boardtc वसंत को कम से कम एक सर्वलेट कंटेनर की आवश्यकता होती है, नहीं? AFAIK, वसंत एक एम्बेडेड टोमकैट उदाहरण का उपयोग करता है। – Utku

4

ईजेबी Enterprise Java Bean है - विवरण के लिए लिंक देखें, लेकिन मूल रूप से यह एंटरप्राइज़ एप्लिकेशन लिखने का 'डिफ़ॉल्ट' जावा तरीका है।

हाइबरनेट एक ओआरएम फ्रेमवर्क है; डेटाबेस टेबल पर आपके एप्लिकेशन में ऑब्जेक्ट्स/क्लासेस को मैप करने का एक तरीका। यह इस बात से संबंधित है कि आप अपने डेटा को डेटाबेस में कैसे बनाते हैं।

वसंत एक आईओसी/निर्भरता इंजेक्शन कंटेनर है जो आपके जीवन को आसान बनाने के लिए कई उपयोगी और अच्छी तरह से परीक्षण किए गए अवशोषण प्रदान करता है। वसंत अपने स्वयं के आवेदन ढांचे की तरह है।

जेएसएफ जावा वेब अनुप्रयोगों के लिए एक दृश्य तकनीक जावा सर्वर फेस है।

आप या तो ईजेबी या वसंत का उपयोग करेंगे। यदि आप चाहते थे, तो आप अपने दृढ़ता कार्यान्वयन के रूप में हाइबरनेट का उपयोग कर सकते हैं; आपको ऐसा करने की ज़रूरत नहीं है। RESTFul webservices के लिए, आपको वास्तव में जेएसएफ की आवश्यकता नहीं है।

लोग वसंत के साथ बहुत खुश हैं - मुझे लगता है कि उपयोग करने की अनुशंसा ...

2
  • JSF - जावा सर्वर चेहरे -> वेब उपयोगकर्ता इंटरफ़ेस
  • EJB - एंटरप्राइज जावा बीन्स -> अवयव जो स्टेटफुल हैं (sessioen उन्मुख) या statles (सेवाएं), संदेश संचालित (एसिंक्रोनस)
  • हाइबरनेट - अन्य जेपीए कार्यान्वयन (Eclipselink, OpenJPA या Toplink तरह हठ सेवा)
  • स्प्रिंग EJBs बिना दूसरी दुनिया है, जो अन्य दृश्य प्रौद्योगिकियों को एकीकृत करने में सक्षम है। यह लचीला छोड़ दिया है।

आपको जेईई 5/6 और वसंत के बीच फैसला करना होगा। लाल या नीली गोली लें दोनों का उपयोग न करें।

+2

अच्छा अवलोकन। लेकिन लाल या नीली गोलियों के बारे में: वसंत ईजेबी http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ejb.html –

6
  • JSF: एक जीयूआई ढांचे - आप इस की जरूरत नहीं है यदि आप केवल एक बैकएंड
  • EJB लागू करना चाहते हैं: वितरित घटकों के लिए एक मानक, बुरी तरह जटिल हुआ करता था, लेकिन मानक का संस्करण 3 है उपयोग करने में काफी आसान है। यह आपके समाधान का हिस्सा हो सकता है।
  • हाइबरनेट: एक ऑब्जेक्ट-रिलेशनल मैपिंग फ्रेमवर्क। यह जेपीए (जावा पर्सिस्टेंस आर्किटेक्चर) मानक के लिए प्रेरणा के रूप में कार्य करता है, जिसे अब हाइबरनेट और ईजेबी दोनों द्वारा समर्थित किया जाता है।
  • वसंत: एक आवेदन ढांचा जो सभी प्रकार की चीजें करता है, उनमें निर्भरता इंजेक्शन, वेब जीयूआई और एओपी।

हालांकि, यदि आप आरईएसटी करना चाहते हैं, तो आपके लिए सबसे महत्वपूर्ण मानक JAX-RS है। आप या तो वसंत ढांचे के भीतर या ईजेबी के साथ इसका उपयोग कर सकते हैं। दृढ़ता के लिए, आप एक ईजेबी कंटेनर जैसे ग्लासफ़िश

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