2011-06-21 11 views
6

मेरी कंपनी में वसंत ढांचे का उपयोग निराश है और इसके बजाय जावा ईई 6 को बढ़ावा दिया जाता है। लेकिन हाल ही में मैंने Using @Transactional पर स्प्रिंग्स @Transactional एनोटेशन के बारे में पढ़ा और लगता है कि यह हमारे कोड के लिए वास्तव में उपयोगी हो सकता है।जावा ईई 6 में उपलब्ध स्प्रिंग्स @ ट्रांस्सेक्शन एनोटेशन के समान कुछ है?

जहां तक ​​मुझे लगता है कि @Transactional के साथ एनोटेटेड विधि को या तो पहले से ही मौजूदा लेनदेन का पुन: उपयोग करेगा या उस विधि को कॉल करते समय कोई सक्रिय लेनदेन मौजूद नहीं होगा। क्या जावा ईई 6 में कुछ समान (उदा। एक समान एनोटेशन) उपलब्ध है?

उत्तर

9

EJB घटकों जावा ईई में इस लेन-देन संबंधी नियंत्रण है। आप EJB पर एक विधि के लेन-देन सेट कर सकते हैं, आवश्यक करने के लिए किया जा RequiresNew का समर्थन करता है, आदि आप लगभग हमेशा आवश्यकताओं आप का वर्णन करने के लिए एक राज्यविहीन सत्र बीन (@Stateless) का प्रयोग करेंगे:

> @TransactionAttribute(value=[MANDATORY, 
> REQUIRED, REQUIRES_NEW, SUPPORTS, 
> NOT_SUPPORTED, NEVER] 

आवश्यक, डिफ़ॉल्ट यदि कोई नहीं है तो कोई मौजूदा टीएक्सएन का पुन: उपयोग करेगा या यदि कोई नहीं है तो नया बनायेगा। जावा ईई 6 ईजेबी 3.1 के साथ जहाजों, इसलिए आपको बिजनेस इंटरफेस की भी आवश्यकता नहीं है और यदि आप चाहें तो ईएआरबी को WAR फ़ाइल में पैकेज कर सकते हैं। इसलिए आप ईजेबी का उपयोग कर रहे हैं, लेकिन डेवलपर को अगर आप चाहते हैं कि वे जेटीए समर्थन चाहते हैं तो उन्हें एकीकृत करना बहुत आसान है।

यह ईजेबी एनोटेशन के लिए useful cheat sheet है और यदि आप उनके लिए Google हैं तो कई मार्गदर्शिकाएं हैं।

0

EJB के (राज्यविहीन और स्टेटफुल) डिफ़ॉल्ट व्यवहार घटकों, डिफ़ॉल्ट व्यवहार संपत्ति की आवश्यकता है, वसंत के समान हैं ..

3

जावा ईई 6 में, कोई ईजेबी बीन कक्षा स्वयं, या TransactionAttribute एनोटेशन के साथ ईजेबी (दोनों सत्र ईजेबी और एमडीबी) में व्यक्तिगत व्यावसायिक विधियों को एनोटेट कर सकता है। यह तभी लागू किया जा सकता है जब आप कंटेनर प्रबंधित लेनदेन का उपयोग करते हैं। टिप्पणी के लिए

वैध मान TransactionAttributeType एनोटेशन में परिभाषित कर रहे हैं:

  • NOT_SUPPORTED
  • आवश्यक
  • REQUIRES_NEW
  • अनिवार्य
  • कभी
01 का समर्थन करता है

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

यदि आप लेनदेन विशेषताओं को ईजेबी 3.0 और स्प्रिंग मॉडल के बीच तुलना करने के बारे में त्वरित अवलोकन चाहते हैं, तो मैं खुशी से आपको Java Transaction Design Strategies की दिशा में इंगित करूंगा। अस्वीकरण: मैं इस पुस्तक का सिर्फ एक संतुष्ट पाठक हूं।

4

जावा ईई 7 में अब @javax.transactional.Transactional शामिल है। यह वसंत एनोटेशन के समान ही कार्य करता है।