ईजेबी क्या है, और यह क्या करता है?


151

क्या सीखने की कोशिश कर रहा है EJBसेम हैं, इसका क्या मतलब है कि उनके उदाहरण एक पूल, ब्ला ब्ला में प्रबंधित किए जाते हैं। वास्तव में उनकी अच्छी पकड़ नहीं हो सकती।

क्या आप मुझे समझा सकते हैं कि वे वास्तव में क्या हैं (व्यावहारिक रूप से एक जावा प्रोग्रामर के लिए)? वो क्या करते हैं? उनके उद्देश्य क्या हैं? वास्तव में उनका उपयोग क्यों करें? (सिर्फ छड़ी क्यों नहीं POJO?) शायद एक उदाहरण अनुप्रयोग?

कृपया केवल अद्यतन जानकारी को देखें, अर्थात EJB 3.1। EJB के बारे में दिनांकित जानकारी भ्रामक हो सकती है।

EJB सीखने के लिए कृपया ध्यान दें:

EJB वितरित वस्तुओं पर आधारित हैं , यह एक नेटवर्क द्वारा जुड़े कई मशीनों (आभासी या भौतिक) पर चलने वाले सॉफ़्टवेयर टुकड़ों को संदर्भित करता है


जवाबों:


161

वास्तव में उनका उपयोग क्यों करें? (सिर्फ पीओजेओ से क्यों नहीं चिपके?)

यदि आपको किसी ऐसे घटक की आवश्यकता है जो डेटाबेस तक पहुँचता है, या अन्य कनेक्टिविटी / निर्देशिका संसाधनों तक पहुँचता है, या कई क्लाइंट से एक्सेस किया जाता है, या एक SOA सेवा के रूप में अभिप्रेत है, तो EJB आज आम तौर पर "बड़ा, मजबूत, तेज (या कम से कम अधिक स्केलेबल) है। और सरल "POJO की तुलना में"। वे वेब या कॉर्पोरेट नेटवर्क पर बड़ी संख्या में उपयोगकर्ताओं की सेवा के लिए सबसे मूल्यवान हैं और एक विभाग के भीतर छोटे ऐप के लिए कुछ कम मूल्यवान हैं।

  1. लूज़ कपलिंग के साथ कई अनुप्रयोगों / ग्राहकों में पुन: उपयोग / साझाकरण तर्क।
    ईजेबी को अपने स्वयं के जार में पैक किया जा सकता है, तैनात किया जा सकता है और बहुत से स्थानों से मंगवाया जा सकता है। वे सामान्य घटक हैं। सच है, POJO पुस्तकालयों के रूप में डिजाइन किए जा सकते हैं (ध्यान से!) और जार के रूप में पैक किए जाते हैं। लेकिन EJB दोनों स्थानीय और दूरस्थ नेटवर्क एक्सेस का समर्थन करते हैं - जिसमें स्थानीय जावा इंटरफ़ेस, पारदर्शी RMI, JMS async संदेश और SOAP / REST वेब सेवा शामिल हैं, जो कई (असंगत) तैनाती के साथ कट-एंड-पेस्ट जार निर्भरता से बचाते हैं?
    वे SOA सेवाएँ बनाने के लिए बहुत उपयोगी हैं। जब वे स्थानीय पहुँच के लिए उपयोग किए जाते हैं तो वे POJO (मुफ्त कंटेनर सेवाओं के साथ जोड़े जाते हैं)। एक अलग EJB परत को डिजाइन करने का कार्य एन्कैप्सुलेशन, ढीले युग्मन और सामंजस्य को अधिकतम करने के लिए अतिरिक्त देखभाल को बढ़ावा देता है, और एक साफ इंटरफ़ेस (मुखौटा) को बढ़ावा देता है, जो जटिल प्रसंस्करण और डेटा मॉडल से कॉलिंग परिरक्षण करता है।

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

  3. कंज्यूमर मैनेजमेंट। कंटेनर सुनिश्चित करता है कि EJB उदाहरण स्वचालित रूप से कई ग्राहकों द्वारा सुरक्षित (क्रमिक रूप से) तक पहुँचा जा सकता है। कंटेनर EJB पूल, थ्रेड पूल, मंगलाचरण कतार का प्रबंधन करता है, और स्वचालित रूप से विधि-स्तरीय राइट लॉकिंग (डिफ़ॉल्ट) या रीडिंग लॉकिंग (@Lock (READ) के माध्यम से) करता है। यह समवर्ती लिखने-लिखने के झगड़े के माध्यम से भ्रष्टाचार से डेटा की रक्षा करता है, और डेटा को पढ़ने-लिखने की गति को रोकने के द्वारा लगातार पढ़ने में मदद करता है।
    यह @Singleton सत्र बीन्स के लिए मुख्य रूप से उपयोगी है, जहां सेम क्लाइंट कॉलर्स में सामान्य स्थिति में हेरफेर कर रहा है और साझा कर रहा है। यह समवर्ती कोड निष्पादन और डेटा एक्सेस के लिए उन्नत परिदृश्यों को मैन्युअल रूप से कॉन्फ़िगर करने या प्रोग्रामेटिक रूप से नियंत्रित करने के लिए आसानी से ओवर-राइड किया जा सकता है।

  4. स्वचालित लेनदेन से निपटने।
    कुछ भी मत करो और अपने सभी ईजेबी तरीकों को एक जेटीए लेनदेन में चलाया जाता है। यदि आप JPA या JDBC का उपयोग करके डेटाबेस तक पहुँचते हैं, तो यह लेन-देन में स्वचालित रूप से सूचीबद्ध है। जेएमएस और जेसीए चालान के लिए भी। निर्दिष्ट करने के लिए एक विधि से पहले @TransactionAttribute (someTransactionMode) निर्दिष्ट करें कि क्या / कैसे वह विशेष विधि JTA लेनदेन में डिफ़ॉल्ट मोड को ओवरराइड करती है: "आवश्यक"।

  5. इंजेक्शन के माध्यम से बहुत सरल संसाधन / निर्भरता का उपयोग।
    कंटेनर संसाधनों की खोज करेगा और EJB में उदाहरण क्षेत्रों के रूप में संसाधन संदर्भ सेट करेगा: जैसे कि JNDI संग्रहीत JDBC कनेक्शन, JMS कनेक्शन / विषय / कतारें, अन्य EJB, JTA लेनदेन, JPA इकाई प्रबंधक दृढ़ता संदर्भ, JPA इकाई प्रबंधक कारखाना दृढ़ता इकाइयाँ, और जेसीए एडाप्टर संसाधन। एक और EJB और एक JTA लेनदेन और एक JPA इकाई प्रबंधक और एक JMS कनेक्शन फैक्ट्री और कतारों के संदर्भ को सेटअप करने के लिए:

    @Stateless
    public class MyAccountsBean {
    
        @EJB SomeOtherBeanClass someOtherBean;
        @Resource UserTransaction jtaTx;
        @PersistenceContext(unitName="AccountsPU") EntityManager em;
        @Resource QueueConnectionFactory accountsJMSfactory;
        @Resource Queue accountPaymentDestinationQueue;
    
        public List<Account> processAccounts(DepartmentId id) {
            // Use all of above instance variables with no additional setup.
            // They automatically partake in a (server coordinated) JTA transaction
        }
    }
    

    एक सर्वलेट स्थानीय रूप से इस बीन को कॉल कर सकता है, केवल एक उदाहरण चर की घोषणा करके:

    @EJB MyAccountsBean accountsBean;    
    

    और फिर बस अपने 'तरीकों को इच्छानुसार बुला रहा है।

  6. जेपीए के साथ स्मार्ट बातचीत। डिफ़ॉल्ट रूप से, EntityManager ऊपर के रूप में इंजेक्ट किया जाता है जो लेनदेन-स्कॉप्ड दृढ़ता संदर्भ का उपयोग करता है। यह स्टेटलेस सेशन बीन्स के लिए एकदम सही है। जब (स्टेटलेस) ईजेबी विधि को कॉल किया जाता है, तो नए लेनदेन के भीतर एक नई दृढ़ता का संदर्भ बनता है, सभी इकाई ऑब्जेक्ट इंस्टेंसेस जो डीबी के लिए लिखे / लिखे जाते हैं, वे केवल उस मेथड कॉल के भीतर दिखाई देते हैं और अन्य तरीकों से अलग-थलग होते हैं। लेकिन अगर अन्य स्टेटलेस ईजेबी को विधि द्वारा बुलाया जाता है, तो कंटेनर उसी पीसी को प्रचारित और साझा करता है, इसलिए उसी लेनदेन में पीसी के माध्यम से एक ही तरीके से स्वचालित रूप से साझा किए जाते हैं।
    यदि @Stateful सेशन बीन घोषित किया जाता है, तो JPA के साथ समान स्मार्ट आत्मीयता को एक विस्तृत दायरे के लिए एक विस्तृत दायरे के रूप में घोषित करके प्राप्त किया जाता है: @PersistentContent (यूनिटनेम = "अकाउंट्सपु, टाइप = एक्सक्लूसिव)। यह सेम सत्र के जीवन के लिए मौजूद है। कई बीन कॉल और लेनदेन के दौरान, डीबी संस्थाओं की इन-मेमरी कॉपी को पहले से पुनर्प्राप्त / लिखित किया जाता है ताकि उन्हें पुनः प्राप्त करने की आवश्यकता न हो।

  7. जिंदगी चक्र का मैनेजमेंट। EJBs का जीवनचक्र कंटेनर प्रबंधित है। आवश्यकतानुसार, यह ईजेबी इंस्टेंसेस बनाता है, क्लियर करता है और स्टेटफुल सेशन बीन स्टेट, पेसिवेट्स और एक्टिविटिज को इनिशियलाइज़ करता है, और जीवनचक्र कॉलबैक मेथड को कॉल करता है, इसलिए ईजेबी कोड संसाधनों को प्राप्त करने और जारी करने, या अन्य इनिशियलाइज़ेशन और शटडाउन व्यवहार करने के लिए जीवनचक्र के संचालन में भाग ले सकता है। यह सभी अपवादों को भी पकड़ता है, उन्हें लॉग करता है, आवश्यकतानुसार लेन-देन करता है और नए EJB अपवाद या @ApplicationException को आवश्यकतानुसार फेंक देता है।

  8. सुरक्षा प्रबंधन। ईजेबी के लिए भूमिका-आधारित अभिगम नियंत्रण को एक सरल एनोटेशन या एक्सएमएल सेटिंग के माध्यम से कॉन्फ़िगर किया जा सकता है। सर्वर स्वचालित रूप से प्रत्येक कॉल के साथ प्रमाणित उपयोगकर्ता विवरण को सुरक्षा संदर्भ (कॉलिंग प्रिंसिपल और भूमिका) के रूप में पास करता है। यह सुनिश्चित करता है कि सभी RBAC नियमों को स्वचालित रूप से लागू किया जाता है ताकि गलत भूमिका द्वारा अवैध तरीके से कॉल न किया जा सके। यह ईजेबी को अतिरिक्त प्रोग्रामेटिक चेकिंग के लिए आसानी से उपयोगकर्ता / भूमिका विवरण तक पहुंचने की अनुमति देता है। यह मानक तरीके से कंटेनर को अतिरिक्त सुरक्षा प्रसंस्करण (या यहां तक ​​कि IAM उपकरण) में प्लग करने की अनुमति देता है।

  9. मानकीकरण और पोर्टेबिलिटी। EJB कार्यान्वयन जावा EE मानकों और कोडिंग सम्मेलनों के अनुरूप है, गुणवत्ता को बढ़ावा देने और समझने और रखरखाव में आसानी। यह नए विक्रेता ऐप सर्वरों को कोड की पोर्टेबिलिटी को भी बढ़ावा देता है, यह सुनिश्चित करके कि वे सभी समान मानक सुविधाओं और व्यवहारों का समर्थन करते हैं, और डेवलपर्स को गलती से मालिकाना
    गैर-पोर्टेबल विक्रेता सुविधाओं को अपनाने से हतोत्साहित करते हैं ।

  10. असली किकर: सादगी। उपरोक्त सभी बहुत सुव्यवस्थित कोड के साथ किया जा सकता है - या तो जावा ईई 6 के भीतर ईजेबी के लिए डिफ़ॉल्ट सेटिंग्स का उपयोग करना, या कुछ एनोटेशन जोड़ना। अपनी खुद की POJOs में उद्यम / औद्योगिक ताकत सुविधाओं कोडिंग होगा जिस तरह से अधिक volumous, जटिल और त्रुटि प्रवण। एक बार जब आप ईजेबी के साथ कोडिंग शुरू करते हैं, तो वे विकसित करने में आसान होते हैं और "मुफ्त सवारी" लाभों का एक बड़ा सेट देते हैं।

10 साल पहले की मूल ईजेबी कल्पना में, ईजेबी एक प्रमुख उत्पादकता परेशानी थी। वे फूला हुआ था, बहुत सारे कोड और कॉन्फ़िगरेशन कलाकृतियों की आवश्यकता थी और ऊपर दिए गए लाभों के बारे में 2/3 प्रदान किए गए थे। अधिकांश वेब प्रोजेक्ट वास्तव में उनका उपयोग नहीं करते थे। लेकिन यह 10 साल के ट्विकिंग, ओवरहालिंग, कार्यात्मक वृद्धि और विकास की धारा-अस्तर के साथ काफी बदल गया है। जावा ईई 6 में वे अधिकतम स्तर की औद्योगिक शक्ति और उपयोग की सादगी प्रदान करते हैं।

क्या पसंद नहीं करना?? :-)


67

EJB एक जावा घटक है, जिसमें व्यावसायिक तर्क होते हैं, जिसे आप एक कंटेनर में तैनात करते हैं, और यह कि कंटेनर द्वारा प्रदान की जाने वाली तकनीकी सेवाओं से लाभ होता है, आमतौर पर घोषणात्मक तरीके से, एनोटेशन के लिए धन्यवाद:

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

जब आप लेनदेन का उल्लेख करते हैं - आप दृढ़ता का संदर्भ देते हैं?
जैकट्रेड्स

6
हाँ, लेकिन न केवल EJB कंटेनर एक वितरित JTA लेनदेन प्रबंधक प्रदान करते हैं, जो एकल लेनदेन में कई संसाधनों का समर्थन करता है। आप उदाहरण के लिए किसी डेटाबेस में कुछ डेटा को अपडेट कर सकते हैं, और कुछ जेएमएस संदेशों को एक ही लेनदेन में भेज सकते हैं। यदि कुछ भी विफल रहा, तो सब कुछ रोलबैक किया जाएगा: DB अपडेट और भेजे गए संदेश।
जेबी निज़ेट

@ जेबीएनज़ेट ने मुझे एक पुराने सूत्र पर टिप्पणी करने के लिए प्रेरित किया, लेकिन स्प्रिंग की तरह ईजेबी फ्रेमवर्क इन सेवाओं को प्रदान नहीं कर रहा है जिनका आपने उल्लेख किया था। मुझे अंतर समझ में नहीं आता
MoienGK

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

@ जेबी निज़ात एमवीसी पैटर्न में, आप सामान्य रूप से ईजेबी को कहाँ रखेंगे? मैं कहता हूं कि वे मॉडल लेयर से संबंधित हैं, हालांकि मैं कई लोगों को जानता हूं जो कहते हैं कि वे नियंत्रक हैं। यदि EJB में व्यावसायिक तर्क होते हैं (आपने कहा था कि वे करते हैं), तो वे परिभाषा के अनुसार मॉडल परत हैं।
user107986

22

आशा है कि Oracle doc से यह मेरे जैसे किसी व्यक्ति को EJB के विषय को सरल तरीके से समझने में मदद करेगा।

एंटरप्राइज बीन क्या है? जावा प्रोग्रामिंग भाषा में लिखा गया है, एक उद्यम बीन एक सर्वर-साइड घटक है जो किसी एप्लिकेशन के व्यावसायिक तर्क को एन्क्रिप्ट करता है। व्यावसायिक तर्क वह कोड है जो एप्लिकेशन के उद्देश्य को पूरा करता है। एक इन्वेंट्री कंट्रोल एप्लिकेशन में, उदाहरण के लिए, एंटरप्राइज सेम चेकइनवेंट्री लिवेल और ऑर्डरप्रोडक्ट नामक तरीकों में व्यापारिक तर्क को लागू कर सकता है। इन तरीकों को लागू करके, ग्राहक एप्लिकेशन द्वारा प्रदान की गई इन्वेंट्री सेवाओं तक पहुंच सकते हैं।

एंटरप्राइज बीन्स के लाभ कई कारणों से, उद्यम बीन्स बड़े, वितरित अनुप्रयोगों के विकास को सरल करता है। सबसे पहले, क्योंकि ईजेबी कंटेनर उद्यम बीन्स को सिस्टम-स्तरीय सेवाएं प्रदान करता है, बीन डेवलपर व्यावसायिक समस्याओं को हल करने पर ध्यान केंद्रित कर सकता है। बीन डेवलपर के बजाय ईजेबी कंटेनर, लेनदेन प्रबंधन और सुरक्षा प्राधिकरण जैसी सिस्टम-स्तरीय सेवाओं के लिए जिम्मेदार है।

दूसरा, क्योंकि क्लाइंट के बजाय सेम में एप्लिकेशन के व्यावसायिक तर्क होते हैं, क्लाइंट डेवलपर क्लाइंट की प्रस्तुति पर ध्यान केंद्रित कर सकता है। क्लाइंट डेवलपर को रूटीन को कोड करने की ज़रूरत नहीं है जो व्यावसायिक नियमों या एक्सेस डेटाबेस को लागू करते हैं। नतीजतन, ग्राहक पतले होते हैं, एक लाभ जो छोटे उपकरणों पर चलने वाले ग्राहकों के लिए विशेष रूप से महत्वपूर्ण है।

तीसरा, क्योंकि उद्यम बीन्स पोर्टेबल घटक हैं, एप्लिकेशन असेंबलर मौजूदा बीन्स से नए अनुप्रयोगों का निर्माण कर सकता है। ये एप्लिकेशन किसी भी आज्ञाकारी जावा ईई सर्वर पर चल सकते हैं बशर्ते कि वे मानक एपीआई का उपयोग करें।

एंटरप्राइज बीन्स का उपयोग कब करें आपको एंटरप्राइज बीन्स का उपयोग करने पर विचार करना चाहिए यदि आपके आवेदन में निम्नलिखित में से कोई आवश्यकता है:

आवेदन स्केलेबल होना चाहिए। उपयोगकर्ताओं की बढ़ती संख्या को समायोजित करने के लिए, आपको कई मशीनों में एप्लिकेशन के घटकों को वितरित करने की आवश्यकता हो सकती है। न केवल विभिन्न मशीनों पर चलाए जाने वाले एप्लिकेशन के उद्यम सेम हो सकते हैं, बल्कि ग्राहकों के लिए भी उनका स्थान पारदर्शी रहेगा।

लेनदेन को डेटा अखंडता सुनिश्चित करना चाहिए। एंटरप्राइज बीन्स लेनदेन का समर्थन करते हैं, जो तंत्र साझा वस्तुओं के समवर्ती पहुंच का प्रबंधन करते हैं।

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


3

जो सवाल मुझे सबसे ज्यादा भाता है, वह यह है कि मैं उनका उपयोग कैसे और कहां कर सकता हूं। इसे समझने के लिए, हमें पहले यह देखने की आवश्यकता है कि किस प्रकार के ईजेबी मौजूद हैं। 2 बड़ी श्रेणियां हैं:

  1. सेम सेम
  2. संदेश संचालित सेम

चलो सत्र बीन्स पर विचार करें। वे 3 प्रकार के होते हैं:

  1. स्टेटफुल - ये घटक राज्य बनाए रखते हैं और एक ग्राहक के लिए कई अनुरोधों के लिए विशिष्ट होते हैं। इसे एक सत्र के रूप में देखें। तत्काल उपयोग को इनकी दुकान की कार्ट या अन्य प्रकार के सत्र (लॉगिन सत्र और इतने पर) में रखा जा सकता है।
  2. स्टेटलेस - ये स्व-निहित घटक हैं जो अनुरोधों के बीच जानकारी को बनाए नहीं रखते हैं, लेकिन वे उपयोगकर्ता के लिए अद्वितीय हैं। तत्काल उपयोग जो मन में आता है - सेवा परत में सेवा कक्षाएं । कल्पना कीजिए OrderService। इसके लिए एक और बड़ा उपयोग वेब सेवाओं को उजागर करना है। फिर, यह सेवा की परत में या पूरी तरह से अलग हो।
  3. सिंगलटन - ये वे फलियाँ हैं जो प्रति अनुप्रयोग मौजूद होती हैं और एक बार बन जाती हैं और इन्हें कई बार पुन: उपयोग / एक्सेस किया जा सकता है। तुरंत Configurationघटक के मन में आता है - जहां आप एप्लिकेशन स्तर को कॉन्फ़िगर कर सकते हैं और कहीं से भी आवश्यकता होने पर उन्हें एक्सेस कर सकते हैं।

अब इस तरह की किसी भी परिस्थिति में बाकी क्षमताओं या सुविधाओं का उपयोग परतों के पार किया जा सकता है:

  • सुरक्षा - आप उस विधि पर एक एनोटेशन के साथ अनुमतियों की जांच कर सकते हैं जिसे कहा जाता है। यदि आप चाहें तो सर्विस लेयर और कंट्रोलर में भी ऐसा हो सकता है।
  • लेनदेन प्रबंधन - यह सेवा परत या दृढ़ता परत में स्पष्ट उम्मीदवार है
  • निर्भरता इंजेक्शन - फिर से हर जगह इस्तेमाल किया जाएगा

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

और इसी तरह। अब बड़ी कमी यह है कि आप EJB कंटेनर पर बहुत निर्भर हो जाते हैं और यद्यपि आप 2 संदर्भ कार्यान्वयन के बीच स्विच कर सकते हैं, आप उदाहरण के लिए कुछ हल्का - टोस्कैट पर स्विच करने में सक्षम नहीं होंगे। लेकिन आप सभी लाभों का त्याग क्यों करना चाहेंगे?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.