2011-11-06 7 views
8

JSR 269 - "प्लगेबल एनोटेशन संसाधन API" - जारी की गई है 2006 तब से इस एपीआई के केवल प्रसिद्ध उपयोग जेपीए 2.0 (JSR 317, 2009) की मेटामॉडल पीढ़ी की गई है।जेपीए 2.0 के अलावा अच्छी तरह से ज्ञात जेएसआर -26 9 ("प्लग करने योग्य एनोटेशन प्रोसेसिंग एपीआई") उपयोगकर्ता?

अन्य मानक या कम से कम अच्छी तरह से ज्ञात ढांचे उस API का उपयोग करते हैं?

उत्तर

5

Project Lombok मुझे "अच्छी तरह से जाना जाता है" मुझे लगता है। हालांकि यह एक शुद्ध जेएसआर -26 9 कार्यान्वयन प्रतीत नहीं होता है, this thread देखें।

3

जीडब्ल्यूटी 2.4 ने RequestFactory ढांचा प्रस्तुत किया और RequestFactory का उपयोग करने वाली परियोजनाओं को सत्यापित करने के लिए जेएसआर -26 9 एनोटेशन प्रोसेसर प्रदान किया, this page देखें।

1

ब्लेज़ सीबीएवी (बाधा आधारित एनोटेशन सत्यापन) अभी भी विकास में है लेकिन कुछ फैंसी संकलन समय सत्यापन के लिए पहले से ही सक्षम है। असल में आप अपनी शर्तों के आधार पर कंपाइलर त्रुटियों को उत्पन्न करने के लिए अपनी एनोटेशन पर मेटा जानकारी जोड़ने के लिए उस लाइब्रेरी का उपयोग कर सकते हैं।

कुछ उपयोगी डिफ़ॉल्ट बाधाएं पूर्वनिर्धारित हैं, लेकिन आप एक वैधकर्ता को लागू करके स्वयं को परिभाषित कर सकते हैं और अपनी बाधा पर एक बाधा एनोटेशन के माध्यम से बाध्य कर सकते हैं। जब आप अपनी बाधा का उपयोग करना चाहते हैं तो सत्यापनकर्ताओं के कार्यान्वयन को आपके भीतर कक्षाबद्ध रूप में संकलित रूप में मौजूद होना चाहिए, ताकि आप इसे अलग-अलग पैकेज करना चाहें। इसे आजमाएँ और संभावनाओं का पता लगाने;)

उदाहरण के लिए, आप एक बार में एक वर्ग के भीतर लगता है कि एक एनोटेशन की दी गई मूल्य केवल तब होता है बना सकता है:

public @interface MyAnnotation{ 
    @UniqueValueConstraint(scope=ConstraintScope.CLASS, errorMessage="This value must be unique within class level!") 
    String value(); 
} 

public class MyClass{ 
    @MyAnnotation("test") 
    void test1(){} 
    @MyAnnotation("test") 
    void test2(){} // Compiler error with your message ;) 
} 

आप Github पर परियोजना पा सकते हैं: https://github.com/Blazebit/blaze-cbav

5

Dagger, अपने शब्दों में, एंड्रॉइड और जावा के लिए एक तेज निर्भरता इंजेक्टर है। डैगर में एक एनोटेशन प्रोसेसर शामिल होता है जो मॉड्यूल और इंजेक्शन को मान्य करता है। यह प्रोसेसर सख्त है और यदि कोई बाइंडिंग अमान्य या अपूर्ण है तो एक कंपाइलर त्रुटि का कारण बन जाएगा।

0

Google की Auto प्रोजेक्ट जेएसआर -26 9 का उपयोग अन्य चीजों के साथ अपरिवर्तनीय मूल्य प्रकार उत्पन्न करने के लिए करता है। वे एक पुस्तकालय भी प्रदान करते हैं जो आपके स्वयं के एनोटेशन प्रोसेसर लिखना आसान बना सकता है।

1

HexaBinding पुस्तकालय JSR 269 का उपयोग करता है स्वचालित रूप से POJO उपवर्गों जो बाध्यकारी सिस्टम में एकीकृत उत्पन्न करने के लिए, बहुत ज्यादा बॉयलर प्लेट कोड लिखने से developper राहत देने के लिए।

आप इसे यहाँ पा सकते हैं: https://github.com/ltearno/hexa.tools/blob/master/hexa.binding/README.md

और वहाँ भी है जो अपरिवर्तनीय वस्तुओं बिल्डरों उत्पन्न करने के लिए एनोटेशन संसाधन का उपयोग करता Immutables पुस्तकालय।

1

MapStruct बीएस मैपिंग के लिए प्रकार-सुरक्षित बीन के लिए एक जेएसआर 26 9 आधारित कोड जेनरेटर है।

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