20 полезных библиотек, которые должны знать Java-программисты

Java
20 полезных библиотек, которые должны знать Java-программисты

Одной из характеристик хорошего и опытного разработчика Java является обширное знание API, включая JDK и сторонние библиотеки. Я потратил много времени на изучение API, особенно после прочтенияПосле эффективной версии Java 3rd Edition, Джошуа Блох предлагает использовать существующие API для разработки вместо того, чтобы писать новый код для часто используемых вещей.

В этой статье я расскажу о некоторых наиболее полезных и важных библиотеках и API, с которыми должен быть знаком Java-разработчик. Однако я не включил рамку, например.SpringиHibernate, потому что они очень известны и имеют определенные функции.

В целом, я включаю полезные библиотеки в свои повседневные проекты, в том числе библиотеку ведения журналов Log4j, библиотеку синтаксического анализа Jackson JSON и API модульного тестирования, такие как JUnit и Mockito. Если вам нужно использовать его в своем проекте, включите эти JAR-файлы в путь к классам вашего проекта, вы также можете использоватьMavenЗаймитесь управлением зависимостями.

Когда вы используете Maven для управления зависимостями, он автоматически загружает эти библиотеки, включая библиотеки, от которых они зависят, называемые транзитивными зависимостями.

Например, если вы загрузите Spring Framework, он также загрузит все другие JAR-файлы, от которых зависит Spring, например Log4j.

Возможно, вы не заметили, но иметь правильную версию JAR — головная боль. Если это неправильная версия JAR, вы столкнетесь сClassNotFoundException,NoClassDefFoundErrorилиUnsupportedClassVersionError.

20 полезных библиотек с открытым исходным кодом для Java-программистов

Вот моя коллекция полезных сторонних библиотек, которые Java-разработчики могут использовать для выполнения множества полезных функций в своих приложениях. Чтобы использовать эти библиотеки, Java-разработчики должны быть с ними знакомы, чему и посвящена эта статья. Вы можете исследовать библиотеку и использовать ее, если сочтете ее полезной.

1. Библиотека журналов

Библиотеки журналирования очень распространены, потому что они необходимы в каждом проекте. Это самые важные вещи для серверных приложений, потому что журналы размещаются только там, где вы можете видеть текущую среду выполнения приложения. Хотя JDK поставляется с собственной библиотекой протоколирования, существуют лучшие альтернативы, такие как Log4j, SLF4j и LogBack.


Разработчики Java должны быть знакомы с плюсами и минусами библиотек журналирования и знать, чтоПочему использование SLF4j лучше, чем простой Log4j.

2. Библиотека разбора JSON

В современных веб-сервисах и мире IoT JSON стал предпочтительным протоколом для передачи информации от клиента к серверу. Они заменили XML как лучший способ передачи информации между независимыми платформами.

К сожалению, JDK неJSON-библиотека. Однако существует множество отличных сторонних библиотек, позволяющих анализировать и создавать сообщения JSON, например, Jackson и Gson.

Веб-разработчики Java должны быть знакомы хотя бы с одной из этих библиотек. Если вы хотите узнать больше о Джексоне и JSON, я предлагаю вам взглянуть на курсы Udemy.JSON with the Java API.

3. Библиотека модульного тестирования

Модульное тестирование — это самое важное, что отличает обычных разработчиков от хороших. У программистов часто есть причины не писать модульные тесты, но самый распространенный способ избежать написания модульных тестовИзвинениеНедостаток опыта и знаний распространенных библиотек модульного тестирования, включая JUnit, Mockito и PowerMock.


Одна из моих целей в 2018 году — улучшить свои знания библиотек модульного и интеграционного тестирования, таких как JUnit 5, Cucumber, Robot framework и некоторых других.

я все еще здесьUdemyзарегистрированJUnit and Mockito Crash Course. Даже если вы знакомы с основами JUnit и модульного тестирования, вы можете обновить и расширить свои знания.

4. Общая библиотека

Java-разработчики могут использовать несколько хороших общих сторонних библиотек, таких как Apache Commons и Google Guava. Я всегда включаю эти библиотеки в свои проекты, потому что они упрощают многие функции.

Как писал Джошуа Блох вЭффективная JavaКак говорится, нет смысла изобретать велосипед. Мы должны предпочесть использовать проверенную и надежную библиотеку, а не реализовывать ее время от времени самостоятельно.


Разработчикам Java полезно быть знакомыми с библиотеками Google Guava и Apache Commons.

5. HTTP-библиотека

Что мне не нравится в JDK, так это отсутствие поддержки HTTP. Хотя вы можете использовать классы в пакете java.net для установки HTTP-соединений, использование сторонних библиотек с открытым исходным кодом, таких как Apache HttpClient и HttpCore, не является простым или беспроблемным.

Хотя JDK 9 обеспечивает поддержку HTTP 2.0 и улучшенную поддержку HTTP, я настоятельно рекомендую всем разработчикам Java ознакомиться с популярными клиентскими библиотеками HTTP, включая HttpClient и HttpCore.

Вы также можете просмотреть эту статьюWhat's New in Java 9 - Modules and Moreчтобы узнать больше о поддержке JDK 9 для HTTP 2.


6. Библиотека разбора XML

Существует множество библиотек для синтаксического анализа XML, включая Xerces, JAXB, JAXP, Dom4j и Xstream. Xerces2 — это следующая высокопроизводительная версия Apache Xerces, полностью совместимого синтаксического анализатора XML. В этой новой версии Xerces представлен Xerces Native Interface (XNI), полная структура для создания очень модульных и простых в программировании компонентов и конфигураций парсера.


Анализатор Apache Xerces2 является эталонной реализацией XNI, но другие компоненты анализатора, конфигурации и анализаторы могут быть написаны с использованием собственного интерфейса Xerces. Dom4j — еще одна гибкая XML-инфраструктура для Java-приложений. Если вы хотите узнать больше о синтаксическом анализе XML в Java, я предлагаю вам проверить UdemyJava Web Services and XMLОнлайн-курсы.

7. Библиотека Excel

Хотите верьте, хотите нет, но все приложения реального мира должны в той или иной форме взаимодействовать с Microsoft Office. Многие приложения должны предоставлять возможность экспорта данных в Excel, и если вам нужно сделать то же самое из приложения Java, вам понадобится API Apache POI.


Это очень богатая библиотека, которая позволяетЧтение и запись файлов XLS из программы Java. Вы можете увидеть эту ссылку (http://www.java67.com/2014/09/how-to-read-write-xlsx-file-in-java-apache-poi-example.html), чтобы получить работу ядра. пример чтения файла Excel в приложении Java.

8. Библиотека байт-кода

Если вы пишете фреймворк, который генерирует код или взаимодействует с байт-кодом, вам нужна библиотека байт-кода.

Они позволяют вам читать и изменять байт-код, сгенерированный приложением. Некоторые из популярных библиотек байт-кода в мире Java — это javassist и Cglib Nodep.


Javassist (помощник по программированию на Java) упрощает работу с байт-кодом Java. Это библиотека классов для редактирования байт-кода в Java. ASM — еще одна полезная библиотека для редактирования байт-кода. Если вы не знакомы с байт-кодом, я предлагаю вам проверитьIntroduction to Java Programmersчтобы узнать больше об этом.

9. Библиотека пула соединений с базой данных

Если вы взаимодействуете с базой данных из приложения Java, но не используетеПодключение к базе данныхpool library, то вы что-то потеряете.

Поскольку создание подключения к базе данных во время выполнения требует времени и замедляет обработку запросов, всегда рекомендуется использовать библиотеку подключения к базе данных. Некоторые популярные из них — Commons Pool иDBCP.

В веб-приложении эти функции обычно предоставляет его веб-сервер, но в базовом приложении Java вам необходимо включить эти библиотеки пула соединений в путь к классам, чтобы использовать пул соединений с базой данных.

Если вы хотите узнать больше о JDBC и пуле соединений в веб-приложениях, я рекомендую вам просмотреть эту тему в Udemy.JSP, Servlet, and JDBC for Beginnersкурс.

10. Библиотека сообщений

Подобно ведению журналов и соединениям с базами данных, обмен сообщениями является общей функцией многих реальных приложений Java.

предоставлено JavaJMS, служба обмена сообщениями Java не является частью JDK. Для этого компонента необходимо включить отдельный компонент jms.jar.

Аналогичным образом, если вы используете сторонний протокол обмена сообщениями (например, Tibco RV), вам потребуется использовать сторонний JAR-файл tibrv.jar в приложении.в пути к классам.


11. PDF-библиотека

Подобно Microsoft Excel, библиотека PDF — еще один распространенный формат. Если вам нужно поддерживать функциональность PDF в вашем приложении, например.Экспорт данных в файл PDF, вы можете использовать iText и библиотеку Apache FOP.

Оба предлагают полезные функции, связанные с PDF, но iText богаче и лучше. видетьздесьчтобы узнать больше об iText.


12. Библиотека даты и времени

До Java 8 библиотеки данных и времени JDK имели много недостатков, потому что они непотокобезопасный,неизменный, и подвержен ошибкам. Многие разработчики Java полагаются на JodaTime в своих требованиях к дате и времени.

Начиная с JDK 8, нет причин использовать Joda, так как вы находитесь в JDK 8.в новом API даты и времениЕсть все функции, но если вы используете более старую версию Java, вам стоит изучить JodaTime.

Если вы хотите узнать больше о новом API даты и времени, я рекомендую вам проверить UdemyWhat's new in Java 8курс. Он предоставляет отличный обзор всех важных функций Java 8, включая API даты и времени.


13. Коллекционная библиотека

Хотя JDK имеет богатую библиотеку коллекций, есть некоторые сторонние библиотеки, которые предоставляют больше возможностей, такие как Apache Commons Collections, Goldman Sachs Collections, Google Collections и Trove.

Библиотека Trove особенно полезна, поскольку она предоставляет Java высокоскоростные обычные и примитивные коллекции.


FastUtil — еще один похожий API. Он расширяет структуру коллекций Java, предоставляя определенные типы карт, наборов, списков и приоритетных очередей, небольшой объем памяти, быстрый доступ и вставку; он также предоставляет большие (64-разрядные)множество,наборисписок, а также быстрые и практичные классы ввода-вывода для двоичных и текстовых файлов.

14.Email API

Как javax.mail, так и Apache Commons Email предоставляютОтправить письмо с JavaAPI. Он основан на API JavaMail и направлен на его упрощение.


15. Библиотека парсинга HTML

иJSONиXMLТочно так же HMTL — еще один распространенный формат, с которым приходится иметь дело многим из нас. К счастью, у нас есть JSoup, который значительно упрощает работу с HTML в Java-приложениях.

Вы можете не только использоватьJSoupРазбирать HTML, а также создавать HTML-документы


Он предоставляет очень удобный API для извлечения данных и манипулирования ими с помощьюDOM, CSS и jquery-подобные методы. JSoup реализует спецификацию WHATWG HTML5 и будетHTMLРазбирать в тот же DOM, что и в современных браузерах.

16. Криптографическая библиотека

Пакет Apache Commons Codec содержит простые кодировщики и декодеры в различных форматах, таких какBase64и шестнадцатеричный.

В дополнение к этим широко используемым кодировщикам и декодерам пакет кодеков поддерживает набор утилит кодирования речи.


17. Встроенная библиотека базы данных SQL

Мне очень нравится база данных в памяти, такая как H2, которую вы можете встроить в свое Java-приложение. Они отлично подходят для тестирования сценариев SQL и выполнения модульных тестов, для которых требуется база данных. Однако H2 — не единственная БД, вы также можете выбрать Apache Derby и HSQL.


18. Библиотека устранения неполадок JDBC

Существуют некоторые хорошие библиотеки расширений JDBC, которые могут упростить отладку, например P6spy.

Это библиотека, которая беспрепятственно перехватывает и регистрирует данные базы данных, не требуя внесения изменений в код приложения. Вы можете использовать их для регистрации SQL-запросов и их таймингов.

Например, если вы используетеPreparedStatmentиCallableStatement, эти библиотеки могут записывать параметры полного вызова и время выполнения.


Если вы хотите узнать больше о JDBC, вы можете проверитьJDBC for Beginners.

19. Библиотека сериализации

Буферы протокола Google — это способ кодирования структурированных данных в эффективном и масштабируемом формате. этоJava-сериализацияБолее богатая и лучшая альтернатива. Я настоятельно рекомендую изучить Google Protobuf для опытных разработчиков Java. Вы можете проверить эту статью, чтобы узнать оБуферы протокола GoogleДополнительная информация.


20. Сетевая библиотека

Некоторыми полезными сетевыми библиотеками являются Netty и Apache MINA. Рассмотрите возможность использования этих библиотек, если вы пишете приложение, которое должно выполнять низкоуровневые сетевые задачи. Если вы хотите узнать больше о сетевом программировании на Java, ознакомьтесь сJava Network Programming - TCP/IP Socket Programming.


Это то, что должен использовать каждый разработчик JavaНемногополезная библиотека. Мир Java огромен, и вы найдете бесчисленное множество библиотек для разных целей.

Если вы хотите что-то сделать на Java, скорее всего, вы найдете библиотеку, как это сделать. Как всегда, Google это то, что вы найдете полезнымбиблиотеки JavaЛучший друг, но вы также можете посетить центральный репозиторий Maven, чтобы найти несколько полезных библиотек для решения поставленной задачи.

Нажмите на оригинальную английскую ссылку

Для получения дополнительных статей, пожалуйста, посетите: http://www.apexyun.com

Общедоступный номер: Galaxy № 1

Контактный адрес электронной почты: public@space-explore.com

(Пожалуйста, не перепечатывайте без разрешения)