ईजेबी की बात होने पर एनोटेशन को एक स्पष्ट मध्यम-वेयर दृष्टिकोण पर लागू मध्य-वेयर दृष्टिकोण चुनने के रूप में जाना जाता है, जब आप एनोटेशन का उपयोग करते हैं तो आप एपीआई से आपको जो चाहिए उसे अनुकूलित कर रहे हैं उदाहरण के लिए आपको लेनदेन कॉल करने की आवश्यकता है एक बैंक स्थानांतरण के लिए विधि: एनोटेशन का उपयोग किए बिना: कोड
transfer(Account account1, Account account2, long amount)
{
// 1: Call middleware API to perform a security check
// 2: Call middleware API to start a transaction
// 3: Call middleware API to load rows from the database
// 4: Subtract the balance from one account, add to the other
// 5: Call middleware API to store rows in the database
// 6: Call middleware API to end the transaction
}
एनोटेशन का उपयोग करते समय अपने कोड नहीं बोझिल एपीआई मध्यम बर्तन सेवाओं का उपयोग करने के लिए कॉल शामिल किया जाएगा। कोड व्यापार तर्क
transfer(Account account1, Account account2, long amount)
{
// 1: Subtract the balance from one account, add to the other
}
पर आप स्वच्छ और केंद्रित हैं, आप एनोटेशन के साथ कुछ वाकई दुष्ट चीजें कर सकते हैं। उदाहरण के लिए, यदि आप स्प्रिंग फ्रेमवर्क और उनके @ ट्रान्सैक्शनल एनोटेशन को जानते हैं जो अपवाद/त्रुटि पर विधि आमंत्रण और रोलबैक से पहले एक लेनदेन शुरू करता है और सफल लेनदेन पर चलता है। यह पूरी तरह से एसओसी-सिद्धांत (चिंता का पृथक्करण) का समर्थन करता है। बहुत साफ ! जावा नियम! :-) –
यह मेरे लिए 3 प्रश्नों की तरह दिखता है। दूसरा खुद में बहुत व्यापक है। – Raedwald
वाक्यविन्यास द्वारा सभी टिप्पणियां इंटरफेस की तरह दिखती हैं। तो, कंपाइलर या जेवीएम कैसे अपना उद्देश्य जानता है? मान लीजिए कि क्या हम @ ओवरराइड लेते हैं -> ऊपर बताए गए अनुसार, विधि को ओवरराइड ठीक से या @ लेनदेन संबंधी पर जांच करता है, यह लेनदेन से संबंधित सामान करता है। इन सभी टिप्पणियों के लिए, हमें परिभाषा/तर्क कहां मिल सकता है? –