अपाचे कॉमन्सचा परिचय

अर्थात, इतिहासापासून सुरुवात करूया!

हे सर्व 1999 मध्ये Apache Software Foundation (ASF) च्या वतीने "अपाचे ग्रुप" च्या नोंदणीसह सुरू झाले. फाउंडेशनद्वारे समर्थित प्रकल्प हा 1995 आणि 1999 दरम्यान तयार केलेला Apache HTTPD वेब सर्व्हर होता.

तोच जकार्ता प्रकल्प (जकार्ता प्रकल्प) होता, जो सन मायक्रोसिस्टम्स, आयबीएम, ओरॅकल आणि अपाचेच्या लोकांच्या सहकार्याचा परिणाम म्हणून दिसला. आणि 2001 मध्ये, कामाच्या दरम्यान, विकास कार्यसंघाच्या लक्षात आले की ते बर्‍याचदा समान कार्यक्षमता लिहितात, कधीकधी ते एकमेकांकडून कॉपी करतात. अशा कोडला बॉयलरप्लेट म्हणतात. त्यांनी मोठ्या प्रमाणात कोड गोळा करण्यात व्यवस्थापित केले ज्यामुळे विकासकांना मदत झाली, परंतु ते संग्रहित करण्यासाठी कोणतीही लायब्ररी नव्हती.

अशा प्रकारे जकार्ता कॉमन्स प्रकल्पाचा जन्म झाला, ज्यामध्ये Java घटक जोडले गेले (बहुधा विद्यमान कोडवर आधारित). या प्रकल्पाचे नंतर अपाचे कॉमन्स असे नामकरण करण्यात आले.

अधिक व्यापकपणे, Apache Commons हे "छोट्या जावा युटिलिटीजचा एक मोठा संग्रह" आहे. हे अनेक ओपन सोर्स प्रकल्पांमध्ये वापरले जाते.

Apache Commons युटिलिटीज अपाचे टॉमकॅट, स्ट्रट्स, हायबरनेट आणि इतर प्रकल्पांच्या केंद्रस्थानी आहेत.

अर्थात, हे सर्व बिल्ड सिस्टम (मावेन, ग्रॅडल) शिवाय मॅन्युअली कनेक्ट केले जाऊ शकते, परंतु आम्ही हे करणार नाही आणि त्यांना आमच्या प्रकल्पात जोडू.

Maven सह कार्य करण्यासाठी, प्रथम योग्य अवलंबित्व जोडा:

<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'

लोकप्रिय अपाचे कॉमन्स लायब्ररी

येथे सर्वात जास्त वापरले जाणारे वर्ग आणि पद्धतींची यादी आहे:

Apache Commons: Lang

या लायब्ररीमध्ये खालील पॅकेजेस आहेत:


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

स्ट्रिंग हाताळण्यासाठी मोठ्या संख्येने पद्धती.

  • आहे(नाही)रिक्त/रिक्त(स्ट्रिंग) - या प्रकारच्या चेकबद्दल विसरण्याची वेळ आली आहे: if (s!=null && s.trim().length()>0) , आणि येथे एक चांगली बदली आहे.

StringEscapeUtils

  • (un)escapeSql(स्ट्रिंग) - PreparedStatment बदला
  • (un)escapeHtml(स्ट्रिंग) - HTML वरून मूल्यांवर प्रक्रिया करण्यासाठी

ToStringBuilder

  • reflectionToString(ऑब्जेक्ट) हे परावर्तनावर आधारित toString() ची अंमलबजावणी आहे . जेव्हा तुम्ही प्रतिबिंब वापरून फील्ड काढता, तेव्हा पद्धतीचा परिणाम बदलेल.

EqualsBuilder आणि HashCodeBuilder

  • रिफ्लेक्शन इक्वल्स/हॅशकोड(ऑब्जेक्ट) हा स्वतःच्या फायद्यासह स्वयंचलित निर्मितीसाठी चांगला बदल आहे: या दोन पद्धती ऑपरेशन दरम्यान ऑब्जेक्टमधील संरचनात्मक बदल विचारात घेतात, उदाहरणार्थ, फील्ड जोडणे

अपवाद Utils

  • getFullStackTrace(थ्रोएबल) - संपूर्ण स्टॅकट्रेस स्ट्रिंग म्हणून आउटपुट करा

Apache Commons: संग्रह

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

Java SE कलेक्शन फ्रेमवर्कला उत्तम प्रकारे पूरक असलेली लायब्ररी.

CollectionUtils संग्रहांसह सोयीस्कर कामासाठी एक वर्ग आहे:

    फिल्टर/शोधा(संकलन, प्रेडीकेट) - फिल्टरिंग आणि प्रीडिकेट फॉर ऑलडो (कलेक्शन, क्लोजर) - प्रत्येक घटकासाठी क्लोजर करते, परंतु ही पद्धत नापसंत आहे , वापरा Iterator.forEach() is(Not)Empty(संकलन) - तुम्हाला परवानगी देते isEqualCollection(संग्रह, संग्रह) कॉल करण्यापूर्वी नल तपासू नका - दोन संग्रहांची तुलना करण्यास मदत करते

विविध स्तरावरील उपयुक्ततेचे इतरही अनेक वर्ग आहेत. येथे आणि खाली मी माझ्या बाबतीत सर्वात सामान्यपणे वापरलेली यादी देतो.

Apache Commons:IO

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

याव्यतिरिक्त, हे Java मधील फाइल्ससह कार्य करण्यास मदत करते:

FileUtils

  • copyDirectory(फाइल, फाइल) - कॉपी डिरेक्टरी
  • copyFile(फाइल, फाइल) - फायली कॉपी करा
  • listFiles(फाइल, स्ट्रिंग[], बुलियन) - विस्तारानुसार आणि आवर्ती फायलींची यादी करा
  • readFileToString(फाइल, स्ट्रिंग)
  • writeStringToFile(फाइल, स्ट्रिंग)

IOUtils

  • शांतपणे (वाचक/लेखक/इनपुटस्ट्रीम/आउटपुटस्ट्रीम) - डेटा प्रवाह बंद करते
  • कॉपी (इनपुटस्ट्रीम, आउटपुटस्ट्रीम) - एका प्रवाहातून दुसर्‍या प्रवाहात कॉपी करा