అపాచీ కామన్స్ పరిచయం

అయితే, చరిత్రతో ప్రారంభిద్దాం!

ఇదంతా 1999లో అపాచీ సాఫ్ట్‌వేర్ ఫౌండేషన్ (ASF) తరపున "అపాచీ గ్రూప్" నమోదుతో ప్రారంభమైంది. ఫౌండేషన్ మద్దతు ఇచ్చే ప్రాజెక్ట్ Apache HTTPD వెబ్ సర్వర్ 1995 మరియు 1999 మధ్య సృష్టించబడింది.

అదే జకార్తా ప్రాజెక్ట్ (జకార్తా ప్రాజెక్ట్), ఇది సన్ మైక్రోసిస్టమ్స్, IBM, ఒరాకిల్ మరియు అపాచీకి చెందిన అబ్బాయిల సహకారం ఫలితంగా కనిపించింది. మరియు 2001 లో, పని సమయంలో, అభివృద్ధి బృందం వారు తరచుగా అదే కార్యాచరణను వ్రాస్తారని గమనించారు, కొన్నిసార్లు వారు దానిని ఒకదానికొకటి కాపీ చేస్తారు. ఇటువంటి కోడ్‌ను బాయిలర్‌ప్లేట్ అంటారు. వారు డెవలపర్‌లకు సహాయపడే పెద్ద మొత్తంలో కోడ్‌ను సేకరించగలిగారు, కానీ దానిని నిల్వ చేయడానికి లైబ్రరీ లేదు.

జకార్తా కామన్స్ ప్రాజెక్ట్ ఎలా పుట్టింది, దీనిలో జావా భాగాలు జోడించబడ్డాయి (ఎక్కువగా ఇప్పటికే ఉన్న కోడ్ ఆధారంగా). ఈ ప్రాజెక్ట్ తరువాత అపాచీ కామన్స్ గా పేరు మార్చబడింది.

మరింత విస్తృతంగా, అపాచీ కామన్స్ అనేది "చిన్న జావా యుటిలిటీల యొక్క పెద్ద సేకరణ". ఇది అనేక ఓపెన్ సోర్స్ ప్రాజెక్ట్‌లలో ఉపయోగించబడుతుంది.

అపాచీ కామన్స్ యుటిలిటీలు అపాచీ టామ్‌క్యాట్, స్ట్రట్స్, హైబర్నేట్ మరియు ఇతర ప్రాజెక్ట్‌ల గుండెలో ఉన్నాయి.

వాస్తవానికి, బిల్డ్ సిస్టమ్ (మావెన్, గ్రేడిల్) లేకుండా ఇవన్నీ మాన్యువల్‌గా కనెక్ట్ చేయబడతాయి, కానీ మేము దీన్ని చేయము మరియు వాటిని మా ప్రాజెక్ట్‌కు జోడించాము.

మావెన్‌తో పని చేయడానికి, ముందుగా తగిన డిపెండెన్సీని జోడించండి:

<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

తీగలను మార్చటానికి భారీ సంఖ్యలో పద్ధతులు.

  • (కాదు) ఖాళీ/ఖాళీ(స్ట్రింగ్) - ఈ రకమైన చెక్ గురించి మర్చిపోవాల్సిన సమయం వచ్చింది: అయితే (s!=null && s.trim().length()>0) , మరియు ఇక్కడ మంచి భర్తీ ఉంది

StringEscapeUtils

  • (un)escapeSql(స్ట్రింగ్) - ప్రిపేర్డ్‌స్టాట్‌మెంట్‌ను భర్తీ చేయండి
  • (un)escapeHtml(స్ట్రింగ్) - HTML నుండి విలువలను ప్రాసెస్ చేయడానికి

ToStringBuilder

  • ప్రతిబింబం టోస్ట్రింగ్(ఆబ్జెక్ట్) అనేది ప్రతిబింబం ఆధారంగా toString() యొక్క అమలు . మీరు ప్రతిబింబాన్ని ఉపయోగించి ఫీల్డ్‌ను తీసివేసినప్పుడు, పద్ధతి యొక్క ఫలితం మారుతుంది.

EqualsBuilder & HashCodeBuilder

  • ప్రతిబింబ సమానం/హాష్‌కోడ్(ఆబ్జెక్ట్) అనేది స్వయంచాలక ఉత్పత్తికి దాని స్వంత ప్రయోజనంతో మంచి ప్రత్యామ్నాయం: ఈ రెండు పద్ధతులు ఆపరేషన్ సమయంలో వస్తువులో నిర్మాణాత్మక మార్పులను పరిగణనలోకి తీసుకుంటాయి, ఉదాహరణకు, ఫీల్డ్‌లను జోడించడం

మినహాయింపు యుటిల్స్

  • getFullStackTrace(త్రో చేయగలిగినది) - మొత్తం 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

Java SE కలెక్షన్స్ ఫ్రేమ్‌వర్క్‌ను సంపూర్ణంగా పూర్తి చేసే లైబ్రరీ.

CollectionUtils అనేది సేకరణలతో అనుకూలమైన పని కోసం ఒక తరగతి:

    ఫిల్టర్/ఫైండ్(సేకరణ, ప్రిడికేట్) - ప్రిడికేట్ ఫర్AllDo(కలెక్షన్, క్లోజర్) ద్వారా ఫిల్టరింగ్ మరియు శోధించడం - ప్రతి మూలకం కోసం మూసివేతను నిర్వహిస్తుంది, కానీ ఈ పద్ధతి నిలిపివేయబడింది , Iterator.forEach()ని ఉపయోగించండి (కాదు)ఖాళీ(సేకరణ) - మిమ్మల్ని అనుమతిస్తుంది isEqualCollection(కలెక్షన్, కలెక్షన్)కి కాల్ చేసే ముందు శూన్యతను తనిఖీ చేయవద్దు - రెండు సేకరణలను పోల్చడానికి సహాయపడుతుంది

యుటిలిటీ యొక్క వివిధ స్థాయిలలో అనేక ఇతర తరగతులు కూడా ఉన్నాయి. ఇక్కడ మరియు క్రింద నేను నా విషయంలో అత్యంత సాధారణంగా ఉపయోగించే వాటిని జాబితా చేసాను.

అపాచీ కామన్స్: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

అదనంగా, ఇది జావాలోని ఫైల్‌లతో పని చేయడంలో సహాయపడుతుంది:

FileUtils

  • copyDirectory(ఫైల్, ఫైల్) - డైరెక్టరీలను కాపీ చేయండి
  • copyFile(ఫైల్, ఫైల్) - ఫైల్‌లను కాపీ చేయండి
  • listFiles(ఫైల్, స్ట్రింగ్[], బూలియన్) - పొడిగింపు మరియు పునరావృతం ద్వారా ఫైల్‌లను జాబితా చేయండి
  • readFileToString(ఫైల్, స్ట్రింగ్)
  • writeStringToFile(ఫైల్, స్ట్రింగ్)

IOUtils

  • క్లోజ్ క్వైట్లీ(రీడర్/రైటర్/ఇన్‌పుట్ స్ట్రీమ్/అవుట్‌పుట్ స్ట్రీమ్) - డేటా స్ట్రీమ్‌ను మూసివేస్తుంది
  • కాపీ (ఇన్‌పుట్‌స్ట్రీమ్, అవుట్‌పుట్ స్ట్రీమ్) - ఒక స్ట్రీమ్ నుండి మరొక స్ట్రీమ్‌కి కాపీ