अपाचे कॉमन्स का परिचय
बेशक, इतिहास से शुरू करते हैं!
यह सब 1999 में Apache Software Foundation (ASF) की ओर से "Apache Group" के पंजीकरण के साथ शुरू हुआ। फाउंडेशन द्वारा समर्थित परियोजना 1995 और 1999 के बीच बनाया गया Apache HTTPD वेब सर्वर था।
वही जकार्ता प्रोजेक्ट (जकार्ता प्रोजेक्ट) था, जो सन माइक्रोसिस्टम्स, आईबीएम, ओरेकल और अपाचे के लोगों के सहयोग के परिणामस्वरूप दिखाई दिया। और 2001 में, काम के दौरान, विकास दल ने देखा कि वे अक्सर एक ही कार्यक्षमता लिखते हैं, कभी-कभी वे इसे एक दूसरे से कॉपी करते हैं। ऐसे कोड को बॉयलरप्लेट कहा जाता है। वे बड़ी मात्रा में कोड एकत्र करने में कामयाब रहे जिससे डेवलपर्स को मदद मिली, लेकिन इसे स्टोर करने के लिए कोई पुस्तकालय नहीं था।
इस प्रकार जकार्ता कॉमन्स परियोजना का जन्म हुआ, जिसमें जावा घटक जोड़े गए (ज्यादातर मौजूदा कोड पर आधारित)। बाद में इस परियोजना का नाम बदलकर Apache Commons कर दिया गया।
अधिक मोटे तौर पर, अपाचे कॉमन्स "छोटी जावा उपयोगिताओं का एक बड़ा संग्रह" है। इसका उपयोग कई ओपन सोर्स प्रोजेक्ट्स में किया जाता है।
Apache Tomcat, Struts, Hibernate, और अन्य जैसी परियोजनाओं के केंद्र में Apache Commons उपयोगिताएँ हैं।
बेशक, यह सब एक बिल्ड सिस्टम (मावेन, ग्रैडल) के बिना मैन्युअल रूप से जोड़ा जा सकता है, लेकिन हम ऐसा नहीं करेंगे और बस उन्हें अपने प्रोजेक्ट में जोड़ देंगे।
मेवेन के साथ काम करने के लिए, पहले उचित निर्भरता जोड़ें:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${apache.common.version}</version>
</dependency>
जहां ${apache.common.version} इस पुस्तकालय का संस्करण है।
ग्रैडल (ग्रोवी) के लिए:
implementation 'org.apache.commons:commons-lang3:3.12.0'
लोकप्रिय अपाचे कॉमन्स लाइब्रेरी
यहां सबसे अधिक उपयोग की जाने वाली कक्षाओं और विधियों की सूची दी गई है:
अपाचे कॉमन्स: लैंग
इस लाइब्रेरी में निम्नलिखित पैकेज हैं:
Packages
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.enum
org.apache.commons.lang.enums
org.apache.commons.lang.exception
org.apache.commons.lang.math
org.apache.commons.lang.mutable
org.apache.commons.lang.reflect
org.apache.commons.lang.text
org.apache.commons.lang.time
यहां आप आसानी से और जल्दी से तार, प्रतिबिंब, क्रमांकन, वस्तुओं और सिस्टम के साथ काम कर सकते हैं। आइए सबसे अधिक इस्तेमाल की जाने वाली विधियों पर ध्यान दें:
StringUtils
स्ट्रिंग्स में हेरफेर करने के लिए बड़ी संख्या में तरीके।
- is(Not)Blank/Empty(String) - यह इस प्रकार के चेक के बारे में भूलने का समय है: if (s!=null && s.trim().length()>0) , और यहां एक अच्छा प्रतिस्थापन है
StringEscapeUtils
- (अन) एस्केप एसक्यूएल (स्ट्रिंग) - तैयार किए गए स्टेटमेंट को बदलें
- (un)escapeHtml(String) - HTML से मानों को संसाधित करने के लिए
ToStringBuilder
- प्रतिबिंब टोस्ट्रिंग (ऑब्जेक्ट) प्रतिबिंब के आधार पर toString() का कार्यान्वयन है । जब आप प्रतिबिंब का उपयोग करके किसी क्षेत्र को हटाते हैं, तो विधि का परिणाम बदल जाएगा।
इक्वल्सबिल्डर और हैशकोडबिल्डर
- रिफ्लेक्शनएक्वाल्स/हैशकोड(ऑब्जेक्ट) अपने स्वयं के लाभ के साथ स्वचालित पीढ़ी के लिए एक अच्छा प्रतिस्थापन है: ये दो विधियाँ ऑपरेशन के दौरान वस्तु में संरचनात्मक परिवर्तनों को ध्यान में रखती हैं, उदाहरण के लिए, फ़ील्ड जोड़ना
ExceptionUtils
- getFullStackTrace(Throwable) - पूरे StackTrace को एक स्ट्रिंग के रूप में आउटपुट करता है
अपाचे कॉमन्स: संग्रह
Packages
org.apache.commons.collections4
org.apache.commons.collections4.bag
org.apache.commons.collections4.bidimap
org.apache.commons.collections4.collection
org.apache.commons.collections4.comparators
org.apache.commons.collections4.functors
org.apache.commons.collections4.iterators
org.apache.commons.collections4.keyvalue
org.apache.commons.collections4.list
org.apache.commons.collections4.map
org.apache.commons.collections4.multimap
org.apache.commons.collections4.multiset
org.apache.commons.collections4.properties
org.apache.commons.collections4.queue
org.apache.commons.collections4.sequence
org.apache.commons.collections4.set
org.apache.commons.collections4.splitmap
org.apache.commons.collections4.trie
org.apache.commons.collections4.trie.analyzer
एक पुस्तकालय जो पूरी तरह से जावा एसई कलेक्शंस फ्रेमवर्क का पूरक है।
CollectionUtils संग्रह के साथ सुविधाजनक कार्य के लिए एक वर्ग है:
-
फ़िल्टर/ढूंढें (संग्रह, विधेय) - AllDo (संग्रह, बंद) के लिए विधेय द्वारा फ़िल्टर करना और खोज करना - प्रत्येक तत्व के लिए क्लोजर करता है, लेकिन यह विधि पदावनत है , Iterator.forEach () is(Not)Empty(Collection) का उपयोग करें - आपको अनुमति देता है isEqualCollection(Collection, Collection) कॉल करने से पहले शून्य की जाँच न करें - दो संग्रहों की तुलना करने में मदद करता है
उपयोगिता के विभिन्न स्तरों के कई अन्य वर्ग भी हैं। यहां और नीचे मैं अपने मामले में विशुद्ध रूप से सबसे अधिक उपयोग की जाने वाली सूची देता हूं।
अपाचे कॉमन्स: आईओ
Packages
org.apache.commons.io
org.apache.commons.io.comparator
org.apache.commons.io.file
org.apache.commons.io.file.spi
org.apache.commons.io.filefilter
org.apache.commons.io.function
org.apache.commons.io.input
org.apache.commons.io.input.buffer
org.apache.commons.io.monitor
org.apache.commons.io.output
org.apache.commons.io.serialization
इसके अतिरिक्त, यह जावा में फाइलों के साथ काम करने में मदद करता है:
FileUtils
- कॉपी डायरेक्टरी (फाइल, फाइल) - कॉपी डायरेक्टरी
- कॉपीफाइल (फाइल, फाइल) - फाइल कॉपी करें
- listFiles (फ़ाइल, स्ट्रिंग [], बूलियन) - विस्तार और पुनरावर्ती रूप से फ़ाइलों को सूचीबद्ध करें
- readFileToString (फ़ाइल, स्ट्रिंग)
- राइटस्ट्रिंग टूफाइल (फाइल, स्ट्रिंग)
IOUtils
- CloseQuietly(रीडर/राइटर/इनपुटस्ट्रीम/आउटपुटस्ट्रीम) - डेटा स्ट्रीम को बंद कर देता है
- कॉपी (इनपुटस्ट्रीम, आउटपुटस्ट्रीम) - एक स्ट्रीम से दूसरी स्ट्रीम में कॉपी करें
GO TO FULL VERSION