Top Twenty Libraries As Well As Apis Coffee Developer Should Know
Friday, June 1, 2018
Add Comment
One of the traits of a skillful in addition to experienced Java developer is the extensive noesis of API, including JDK in addition to third-party libraries. I spent a skillful bargain of fourth dimension learning API, specially afterwards reading Spring in addition to Hibernate because they are pretty good known in addition to direct hold specific features.
I am to a greater extent than oft than non including useful libraries for 24-hour interval to 24-hour interval materials e.g. logging libraries similar Log4j, JSON parsing libraries similar Jackson, in addition to unit of measurement testing API e.g. JUnit in addition to Mockito. If y'all demand to utilisation them inwards your projection in addition to thence y'all tin give the axe either include JARs of these libraries inwards your project's classpath to rootage using them or y'all tin give the axe utilisation Maven for dependency management.
When y'all utilisation Maven for dependency management, in addition to thence it volition automatically download these libraries, including the libraries they depend, known equally the transitive dependency.
For example, if y'all download Spring Framework in addition to thence it volition also download all other JARs on which Spring is dependent e.g. Log4j etc.
You mightiness non realize but having the correct version of dependent JARs is a big headache. If y'all direct hold incorrect versions of the JAR in addition to thence y'all volition acquire ClassNotFoundException or NoClassDefFoundError, or UnsupportedClassVersionError.
1. Logging libraries
Logging libraries are real mutual because y'all demand them inwards every project. They are the most of import affair for server-side application because logs are exclusively placed where y'all tin give the axe encounter what's going on your application. Even though JDK ships alongside its ain logging library, at that topographic point are many improve alternatives are available e.g. Log4j, SLF4j, in addition to LogBack.
Influenza A virus subtype H5N1 Java developer should endure familiar alongside pros in addition to cons of logging library in addition to know why using SLF4j is improve than manifestly Log4j. If y'all don't know why I advise y'all read my before article on the same subject.
2. JSON parsing libraries
In today's earth of spider web services in addition to mesh of things (IoT), JSON has acquire the go-to protocol to deport information from customer to server. They direct hold replaced the XML equally the most preferred agency to transfer information inwards a platform-independent way. Unfortunately JDK doesn't direct hold a JSON library withal but fortunately, at that topographic point are many skillful third-party libraries which allows y'all to both parse in addition to create JSON messages e.g. Jackson in addition to Gson.
Influenza A virus subtype H5N1 Java spider web developer should endure familiar alongside at to the lowest degree ane of these libraries. If y'all desire to know to a greater extent than close Jackson in addition to JSON, I advise going through JSON alongside Java API course of written report from Udemy, which they are offering inwards but $10.99 on their New Year's Day Sale.
3. Unit testing libraries
Unit testing is the unmarried most of import affair which separates an average developer from a skillful developer. Programmers oft are given excuses for non writing unit of measurement tests but the most mutual excuse for avoiding unit of measurement testing is lack of sense in addition to noesis of pop unit of measurement testing library e.g. JUnit, Mockito, in addition to PowerMock.
I direct hold a finish inwards 2018 to improve my noesis of unit of measurement testing in addition to integration testing libraries e.g. JUnit 5, Cucumber, Robot framework etc.
I direct hold also signed upward for a JUnit in addition to Mockito Crash Course in Udemy. Even if y'all know JUnit in addition to basics of unit of measurement testing, y'all may desire to refresh in addition to upgrade your noesis inwards 2018.
4. General purpose libraries
There is a duo of real skillful full general purpose, third-party library available to Java developer e.g. Apache Commons in addition to Google Guava. I ever include these libraries inwards my projects because they simplify a lot of tasks. As Joshua Bloch has rightly said inwards Effective Java (now the 3rd edition is also available) that at that topographic point is no betoken inwards re-inventing the wheels in addition to nosotros should prefer using tried in addition to tested libraries instead of writing our ain routines every straightaway in addition to then.
It's but for a skillful Java developer to acquire himself familiar alongside Google's Guava in addition to Apache common library.
5. Http libraries
One affair I don't similar much close JDK is their lack of back upward for HTTP. Though y'all tin give the axe brand HTTP connexion using classes inwards java.net bundle it's non equally like shooting fish in a barrel in addition to seamless equally past times using opened upward source, third-party libraries similar Apache HttpClient in addition to HttpCore.
Though JDK ix is bringing the back upward of HTTP 2.0 in addition to improve back upward for HTTP, I strongly advise all Java developers acquire familiar alongside pop HTTP customer libraries e.g. HttpClient in addition to HttpCore.
You tin give the axe also check What's New inwards Java ix - Modules in addition to More to larn to a greater extent than close JDK 9's HTTP 2 support.
6. XML parsing libraries
There are many XML parsing libraries exists e.g. Xerces, JAXB, JAXP, Dom4j, Xstream etc. Xerces2 is the side past times side generation of high performance, fully compliant XML parsers inwards the Apache Xerces family. This novel version of Xerces introduces the Xerces Native Interface (XNI), a consummate framework for edifice parser components in addition to configurations that is extremely modular in addition to like shooting fish in a barrel to program.
The Apache Xerces2 parser is the reference implementation of XNI but other parser components, configurations, in addition to parsers tin give the axe endure written using the Xerces Native Interface. Dom4j is or thence other flexible XML framework for Java application. If y'all desire to larn to a greater extent than close XML parsing inwards Java in addition to thence I advise y'all direct hold a await at Java Web Services in addition to XML online course of written report on Udemy. It's currently available for exclusively $10.99 on sale.
7. Excel reading libraries
Believe it or non but all real-world application has to interact alongside Microsoft business office inwards or thence cast or other. Many application needs to supply functionality to export information inwards Excel in addition to if y'all direct hold to practice same from your Java application in addition to thence y'all demand Apache POI API.
This is a real rich library which allows y'all to both read in addition to write XLS files from Java program. You tin give the axe encounter that link for a working instance of reading Excel file inwards Core Java application.
8. Bytecode libraries
If y'all are writing framework or libraries which generate code or interact alongside bytecodes in addition to thence y'all demand a bytecode library. They allow y'all to read in addition to modify bytecode generated past times an application. Some of the pop bytecode libraries inwards Java earth are javassist in addition to Cglib Nodep.
The Javassist (JAVA programming ASSISTant) makes Java bytecode manipulation real simple. It is a cast library for editing bytecodes inwards Java. ASM is or thence other useful bytecode editing library.
9. Database connexion puddle libraries
If y'all are interacting alongside the database from Java application but non using database connexion puddle libraries in addition to thence y'all are missing something. Since creating connections at runtime takes fourth dimension in addition to makes asking processing slower, its ever advised to utilisation DB connexion libraries. Some of the pop ones are Commons Pool in addition to DBCP.
In a spider web application, it's spider web server which to a greater extent than oft than non provides these functionalities but inwards meat Java application y'all demand to include these connexion puddle libraries into your classpath to utilisation database connexion pool. If y'all desire to larn to a greater extent than close JDBC in addition to connexion puddle inwards a spider web application, I advise y'all direct hold a await at JSP, Servlet, in addition to JDBC for Beginners course of written report inwards Udemy.
10. Messaging libraries
Similar to logging in addition to database connection, messaging is also a mutual characteristic of many real-world Java application. Java provides JMS, Java Messaging Service but that's non component subdivision of JDK in addition to y'all demand to include dissever jms.jar. Similarly, if y'all are using third-party messaging protocol e.g. Tibco RV in addition to thence y'all demand to utilisation a third-party JAR similar tibrv.jar inwards your application classpath.
11. PDF Libraries
Similar to Microsoft Excel in addition to World, PDF is or thence other ubiquitous format. If y'all demand to back upward PDF functionality inwards your application e.g. exporting information inwards PDF files in addition to thence y'all tin give the axe utilisation the iText in addition to Apache FOP libraries. Both supply useful PDF related functionality but iText is richer in addition to improve in addition to I ever preferred that one. See hither to larn to a greater extent than close iText.
12. Date in addition to Time libraries
Before Java 8, JDK's information in addition to fourth dimension libraries direct hold thence many flaws e.g they were non thread-safe, immutable, in addition to error-prone in addition to many Java developer relied on JodaTime for implementing their engagement in addition to fourth dimension requirement. From JDK 8, at that topographic point is no argue to utilisation Joda because y'all acquire all that functionality inwards the JDK 8's new Date in addition to Time API itself but if y'all are working inwards older Java version in addition to thence JodaTime is a worth learning library.
If y'all desire to larn to a greater extent than close novel Date in addition to Time API, I advise y'all to delight banking concern stand upward for the
I am to a greater extent than oft than non including useful libraries for 24-hour interval to 24-hour interval materials e.g. logging libraries similar Log4j, JSON parsing libraries similar Jackson, in addition to unit of measurement testing API e.g. JUnit in addition to Mockito. If y'all demand to utilisation them inwards your projection in addition to thence y'all tin give the axe either include JARs of these libraries inwards your project's classpath to rootage using them or y'all tin give the axe utilisation Maven for dependency management.
When y'all utilisation Maven for dependency management, in addition to thence it volition automatically download these libraries, including the libraries they depend, known equally the transitive dependency.
For example, if y'all download Spring Framework in addition to thence it volition also download all other JARs on which Spring is dependent e.g. Log4j etc.
You mightiness non realize but having the correct version of dependent JARs is a big headache. If y'all direct hold incorrect versions of the JAR in addition to thence y'all volition acquire ClassNotFoundException or NoClassDefFoundError, or UnsupportedClassVersionError.
20 Useful Open Source libraries for Java Programmers
Here is my collection of or thence of the useful third-party libraries Java developers tin give the axe utilisation inwards their application to practice a lot of useful tasks. In gild to utilisation these libraries, Java developer should also endure familiar alongside that in addition to this is the whole betoken of this article. If y'all direct hold an persuasion in addition to thence y'all tin give the axe inquiry close that library in addition to utilisation it.1. Logging libraries
Logging libraries are real mutual because y'all demand them inwards every project. They are the most of import affair for server-side application because logs are exclusively placed where y'all tin give the axe encounter what's going on your application. Even though JDK ships alongside its ain logging library, at that topographic point are many improve alternatives are available e.g. Log4j, SLF4j, in addition to LogBack.
Influenza A virus subtype H5N1 Java developer should endure familiar alongside pros in addition to cons of logging library in addition to know why using SLF4j is improve than manifestly Log4j. If y'all don't know why I advise y'all read my before article on the same subject.
2. JSON parsing libraries
In today's earth of spider web services in addition to mesh of things (IoT), JSON has acquire the go-to protocol to deport information from customer to server. They direct hold replaced the XML equally the most preferred agency to transfer information inwards a platform-independent way. Unfortunately JDK doesn't direct hold a JSON library withal but fortunately, at that topographic point are many skillful third-party libraries which allows y'all to both parse in addition to create JSON messages e.g. Jackson in addition to Gson.
Influenza A virus subtype H5N1 Java spider web developer should endure familiar alongside at to the lowest degree ane of these libraries. If y'all desire to know to a greater extent than close Jackson in addition to JSON, I advise going through JSON alongside Java API course of written report from Udemy, which they are offering inwards but $10.99 on their New Year's Day Sale.
3. Unit testing libraries
Unit testing is the unmarried most of import affair which separates an average developer from a skillful developer. Programmers oft are given excuses for non writing unit of measurement tests but the most mutual excuse for avoiding unit of measurement testing is lack of sense in addition to noesis of pop unit of measurement testing library e.g. JUnit, Mockito, in addition to PowerMock.
I direct hold a finish inwards 2018 to improve my noesis of unit of measurement testing in addition to integration testing libraries e.g. JUnit 5, Cucumber, Robot framework etc.
I direct hold also signed upward for a JUnit in addition to Mockito Crash Course in Udemy. Even if y'all know JUnit in addition to basics of unit of measurement testing, y'all may desire to refresh in addition to upgrade your noesis inwards 2018.
4. General purpose libraries
There is a duo of real skillful full general purpose, third-party library available to Java developer e.g. Apache Commons in addition to Google Guava. I ever include these libraries inwards my projects because they simplify a lot of tasks. As Joshua Bloch has rightly said inwards Effective Java (now the 3rd edition is also available) that at that topographic point is no betoken inwards re-inventing the wheels in addition to nosotros should prefer using tried in addition to tested libraries instead of writing our ain routines every straightaway in addition to then.
It's but for a skillful Java developer to acquire himself familiar alongside Google's Guava in addition to Apache common library.
5. Http libraries
One affair I don't similar much close JDK is their lack of back upward for HTTP. Though y'all tin give the axe brand HTTP connexion using classes inwards java.net bundle it's non equally like shooting fish in a barrel in addition to seamless equally past times using opened upward source, third-party libraries similar Apache HttpClient in addition to HttpCore.
Though JDK ix is bringing the back upward of HTTP 2.0 in addition to improve back upward for HTTP, I strongly advise all Java developers acquire familiar alongside pop HTTP customer libraries e.g. HttpClient in addition to HttpCore.
You tin give the axe also check What's New inwards Java ix - Modules in addition to More to larn to a greater extent than close JDK 9's HTTP 2 support.
6. XML parsing libraries
There are many XML parsing libraries exists e.g. Xerces, JAXB, JAXP, Dom4j, Xstream etc. Xerces2 is the side past times side generation of high performance, fully compliant XML parsers inwards the Apache Xerces family. This novel version of Xerces introduces the Xerces Native Interface (XNI), a consummate framework for edifice parser components in addition to configurations that is extremely modular in addition to like shooting fish in a barrel to program.
The Apache Xerces2 parser is the reference implementation of XNI but other parser components, configurations, in addition to parsers tin give the axe endure written using the Xerces Native Interface. Dom4j is or thence other flexible XML framework for Java application. If y'all desire to larn to a greater extent than close XML parsing inwards Java in addition to thence I advise y'all direct hold a await at Java Web Services in addition to XML online course of written report on Udemy. It's currently available for exclusively $10.99 on sale.
7. Excel reading libraries
Believe it or non but all real-world application has to interact alongside Microsoft business office inwards or thence cast or other. Many application needs to supply functionality to export information inwards Excel in addition to if y'all direct hold to practice same from your Java application in addition to thence y'all demand Apache POI API.
This is a real rich library which allows y'all to both read in addition to write XLS files from Java program. You tin give the axe encounter that link for a working instance of reading Excel file inwards Core Java application.
8. Bytecode libraries
If y'all are writing framework or libraries which generate code or interact alongside bytecodes in addition to thence y'all demand a bytecode library. They allow y'all to read in addition to modify bytecode generated past times an application. Some of the pop bytecode libraries inwards Java earth are javassist in addition to Cglib Nodep.
The Javassist (JAVA programming ASSISTant) makes Java bytecode manipulation real simple. It is a cast library for editing bytecodes inwards Java. ASM is or thence other useful bytecode editing library.
9. Database connexion puddle libraries
If y'all are interacting alongside the database from Java application but non using database connexion puddle libraries in addition to thence y'all are missing something. Since creating connections at runtime takes fourth dimension in addition to makes asking processing slower, its ever advised to utilisation DB connexion libraries. Some of the pop ones are Commons Pool in addition to DBCP.
In a spider web application, it's spider web server which to a greater extent than oft than non provides these functionalities but inwards meat Java application y'all demand to include these connexion puddle libraries into your classpath to utilisation database connexion pool. If y'all desire to larn to a greater extent than close JDBC in addition to connexion puddle inwards a spider web application, I advise y'all direct hold a await at JSP, Servlet, in addition to JDBC for Beginners course of written report inwards Udemy.
10. Messaging libraries
Similar to logging in addition to database connection, messaging is also a mutual characteristic of many real-world Java application. Java provides JMS, Java Messaging Service but that's non component subdivision of JDK in addition to y'all demand to include dissever jms.jar. Similarly, if y'all are using third-party messaging protocol e.g. Tibco RV in addition to thence y'all demand to utilisation a third-party JAR similar tibrv.jar inwards your application classpath.
11. PDF Libraries
Similar to Microsoft Excel in addition to World, PDF is or thence other ubiquitous format. If y'all demand to back upward PDF functionality inwards your application e.g. exporting information inwards PDF files in addition to thence y'all tin give the axe utilisation the iText in addition to Apache FOP libraries. Both supply useful PDF related functionality but iText is richer in addition to improve in addition to I ever preferred that one. See hither to larn to a greater extent than close iText.
12. Date in addition to Time libraries
Before Java 8, JDK's information in addition to fourth dimension libraries direct hold thence many flaws e.g they were non thread-safe, immutable, in addition to error-prone in addition to many Java developer relied on JodaTime for implementing their engagement in addition to fourth dimension requirement. From JDK 8, at that topographic point is no argue to utilisation Joda because y'all acquire all that functionality inwards the JDK 8's new Date in addition to Time API itself but if y'all are working inwards older Java version in addition to thence JodaTime is a worth learning library.
If y'all desire to larn to a greater extent than close novel Date in addition to Time API, I advise y'all to delight banking concern stand upward for the
FastUtil is or thence other similar API, it extends the Java Collections Framework past times providing type-specific maps, sets, lists in addition to priority queues alongside a pocket-size retentivity footprint in addition to fast access in addition to insertion; provides also big (64-bit) arrays, sets, in addition to lists, in addition to fast, practical I/O classes for binary in addition to text files.
14. Email APIs
The javax.mail in addition to Apache Commons Email - supply an API for sending an email. It is built on transcend of the JavaMail API, which it aims to simplify.
15. HTML Parsing libraries
Similar to JSON in addition to XML, HMTL is or thence other mutual format many of us direct hold to bargain with. Thankfully, nosotros direct hold jsoup which greatly simplify working alongside HTML inwards Java application. You tin give the axe utilisation JSoup to non exclusively parse HTML but also to create HTML documents
It provides a real convenient API for extracting in addition to manipulating data, using the best of DOM, CSS, in addition to jquery-like methods. jsoup implements the WHATWG HTML5 specification in addition to parses HTML to the same DOM equally modern browsers do.
16.Cryptographic library
The Apache Commons Codec bundle contains unproblematic encoder in addition to decoders for diverse formats such as Base64 in addition to Hexadecimal. In improver to these widely used encoders in addition to decoders, the codec bundle also maintains a collection of phonetic encoding utilities.
17. Embedded SQL database library
I actually beloved in-memory database similar H2, which y'all tin give the axe embed inwards your Java application. They are non bad for testing your SQL scripts in addition to running Unit tests which demand a database. Btw, H2 is non the exclusively DB, y'all also direct hold Apache Derby in addition to HSQL to select from.
18. JDBC Troubleshooting libraries
There are or thence skillful JDBC Extension libraries exists which makes debugging easier e.g. P6spy. It is a library which enables database information to endure seamlessly intercepted in addition to logged alongside no code changes to the application. You tin give the axe utilisation these to log SQL queries in addition to their timings. For example, if y'all are using PreparedStatment in addition to CallableStatement inwards your code in addition to thence these libraries tin give the axe log an exact telephone telephone alongside parameters in addition to how much fourth dimension it took to execute.
19. Serialization libraries
Google Protocol Buffer Protocol Buffers are a agency of encoding structured information inwards an efficient withal extensible format. It's richer in addition to improve choice to Java serialization in addition to I strongly recommend experienced Java developer to larn Google Protobuf. You tin give the axe encounter this article to larn to a greater extent than close Google Protocol Buffer.
20. Networking libraries
Some of the useful networking libraries are Netty in addition to Apache MINA. If y'all are writing an application where y'all demand to practice low-level networking task, see using these libraries.
That's all close or thence of the useful libraries every Java developer should endure familiar with. Java Ecosystem is real vast in addition to y'all volition discovery tons of libraries for doing unlike things. You intend close something in addition to y'all volition discovery at that topographic point is a library exists to practice but that. As always, Google is your best friend to discovery useful Java libraries but y'all tin give the axe also direct hold a await at Maven key repository to discovery or thence of the useful libraries for your chore at hand.
If y'all similar this article, y'all may discovery my other articles useful too:
10 Things Java Developer Should Learn inwards 2018
10 Programming Languages to explore inwards 2018
10 Frameworks Java in addition to Web Developers should larn inwards 2018
20 Java Books You Can Read inwards 2018
10 Ways to Learn a New Technology inwards 2018
10 PluralSight Courses for Java in addition to Web Developers
10 Tutorials to Learn Java 8 Better
Thanks for reading this article thence far. If y'all similar this article in addition to thence delight portion alongside your friends in addition to colleagues too. If y'all direct hold whatever feedback or questions in addition to thence delight drib a note.
P.S. - If y'all desire to rootage 2018 inwards skillful banker's complaint in addition to thence I advise y'all to read Effective Java 3rd Edition, ane the must read mass for every developer. It's non updated for Java 7, 8, in addition to ix in addition to most of the items are updated keeping novel changes inwards mind.
0 Response to "Top Twenty Libraries As Well As Apis Coffee Developer Should Know"
Post a Comment