Перейти к основному содержимому

· 6 мин. чтения

1. Обзор

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

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

2. Принцип синхронизации

Как правило, мы должны синхронизировать только те объекты, которые, как мы уверены, не заблокирует никакой внешний код .

· 4 мин. чтения

1. Обзор

В этом руководстве мы собираемся создать приложение CLI для проверки соединений с любым сервером аутентификации LDAP . Мы не будем использовать LDAP для защиты нашего приложения , так как это можно сделать лучше, используя , например, Spring Security LDAP .

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

2. Java-клиент LDAP

Начнем с создания нашего единственного класса LdapConnectionTool . Начнем с основного метода. Для простоты вся наша логика будет здесь:

· 7 мин. чтения

1. Обзор

В этой статье мы рассмотрим основы XPath с поддержкой стандартного Java JDK .

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

XPath — это стандартный синтаксис, рекомендованный W3C, это набор выражений для навигации по XML-документам. Полный справочник по XPath можно найти здесь .

2. Простой парсер XPath

· 10 мин. чтения

1. Введение

В этом уроке мы рассмотрим JBang .

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

Мы можем включить JBang всего за одну загрузку и одну команду, чтобы создавать, редактировать и запускать Java так же просто, как Python, JavaScript, PHP и подобные языки.

На первый взгляд JBang выглядит как функция Launch Single-File Source-Code, представленная в Java 11. Однако JBang выходит за рамки этого, поддерживая несколько файлов, используя зависимости из любого совместимого с Maven репозитория , и работает с Java 8 вплоть до недавно выпущенной версии. Java 17 и выше .

2. Установка JBang

· 4 мин. чтения

1. Введение

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

2. Использование нулевых значений

null — ключевое слово, превосходящее все языки программирования. Представляет особую ценность. Распространено мнение, что null не имеет значения или ничего не представляет . Наличие нулевого значения в столбце базы данных означает, что место на жестком диске зарезервировано. Если подходящее значение становится доступным, мы можем сохранить его в этом пространстве.

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

· 3 мин. чтения

1. Обзор

В этом руководстве мы покажем, как выполнить запрос на подсчет с помощью объектно-ориентированных запросов jOOQ , также известного как просто jOOQ . jOOQ — это популярная библиотека баз данных Java, которая помогает вам писать безопасные SQL-запросы на Java.

2. джООК

jOOQ — это альтернатива ORM. В отличие от большинства других ORM, jOOQ ориентирован на реляционную модель, а не на модель предметной области . Hibernate , например, помогает нам писать код Java, который затем автоматически транслируется в SQL. Однако jOOQ позволяет нам создавать реляционные объекты в базе данных с помощью SQL, а затем генерирует код Java для сопоставления с этими объектами.

3. Зависимости Maven

В этом уроке нам понадобится модуль jooq :

<dependency> 
<groupId>org.jooq</groupId>
<artifactId>jooq</artifactId>
<version>3.14.8</version>
</dependency>

· 10 мин. чтения

1. Обзор

В этой статье будут представлены объектно-ориентированные запросы Jooq — Jooq — и простой способ его настройки в сотрудничестве с Spring Framework.

Большинство Java-приложений в той или иной степени сохраняют SQL и получают доступ к этому уровню с помощью инструментов более высокого уровня, таких как JPA. И хотя это полезно, в некоторых случаях вам действительно нужен более тонкий инструмент с более тонкими нюансами, чтобы получить ваши данные или фактически воспользоваться всеми преимуществами, которые может предложить базовая БД.

Jooq избегает некоторых типичных шаблонов ORM и генерирует код, который позволяет нам создавать безопасные для типов запросы и получать полный контроль над сгенерированным SQL с помощью чистого и мощного плавного API.

Эта статья посвящена Spring MVC. В нашей статье Spring Boot Support for jOOQ описывается, как использовать jOOQ в Spring Boot.

2. Зависимости Maven

· 3 мин. чтения

1. Обзор

В этом руководстве мы кратко рассмотрим различные способы сохранения разрывов строк при использовании Jsoup для преобразования HTML в обычный текст . Мы расскажем, как сохранить разрывы строк, связанные с символами новой строки ( \n ), а также те, которые связаны с тегами <br> и <p> .

2. Сохранение \n при разборе HTML-текста

Jsoup удаляет символ новой строки ( \n ) по умолчанию из текста HTML и заменяет каждую новую строку символом пробела.

Однако, чтобы Jsoup не удалял символы новой строки, мы можем изменить OutputSetting Jsoup и отключить красивую печать. Если красивая печать отключена, методы вывода HTML не будут переформатировать вывод, и вывод будет выглядеть как ввод:

· 3 мин. чтения

1. Обзор

@Builder проекта Lombok — это полезный механизм для использования шаблона Builder без написания шаблонного кода. Мы можем применить эту аннотацию к классу или методу.

В этом кратком руководстве мы рассмотрим различные варианты использования @Builder .

2. Зависимости Maven

Во-первых, нам нужно добавить Project Lombok в наш pom.xml :

· 3 мин. чтения

1. Введение

Maven — это инструмент автоматизации сборки, который позволяет разработчикам Java управлять сборкой проекта, отчетами и документацией из централизованного места — POM (объектная модель проекта).

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

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

  • maven-ресурсы-плагин
  • maven-antrun-плагин
  • копировать-переименовать-maven-плагин

2. Использование плагина Maven Resources