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

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

1. Обзор

Тип упаковки — важный аспект любого проекта Maven. Он определяет тип артефакта, создаваемого проектом. Как правило, сборка создает jar , war , pom или другой исполняемый файл.

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

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

2. Типы упаковки по умолчанию

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

1. Обзор

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

2. Понимание проблемы

Во-первых, давайте посмотрим на нашу модель данных и определим, чего мы пытаемся достичь.

Мы будем использовать объекты сущностей Post и Comment , которые имеют отношение «один ко многим». Мы хотим получить список сообщений со всеми связанными с ними комментариями.

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

1. Обзор

JPA Buddy — это широко используемый плагин IntelliJ IDEA, предназначенный как для новых, так и для опытных разработчиков, которые работают с моделью данных JPA и связанными технологиями, такими как Spring Data JPA , инструменты управления версиями БД ( Flyway , Liquibase ), MapStruct и некоторые другие. Плагин предоставляет визуальные дизайнеры, генерацию кода и дополнительные проверки, которые должны упростить разработку и улучшить код в соответствии с лучшими практиками для JPA.

Плагин работает как с версиями IntelliJ IDEA Community, так и с Ultimate и использует модель «freemium». Большинство функций доступны бесплатно, и нам нужно будет купить подписку, чтобы получить доступ к платным.

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

2. Начало работы

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

1. Обзор

В этом руководстве мы увидим, как настроить и использовать JaVers в простом приложении Spring Boot для отслеживания изменений сущностей.

2. ЯВерс

При работе с изменяемыми данными у нас обычно есть только последнее состояние сущности, хранящееся в базе данных. Как разработчики, мы тратим много времени на отладку приложения, поиск в лог-файлах события, изменившего состояние. Это становится еще сложнее в производственной среде, когда систему использует множество разных пользователей.

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

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

1. Введение

В этом руководстве мы увидим, как работает сборщик groupingBy , на различных примерах.

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

  2.10.  Объединение нескольких атрибутов сгруппированного результата

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

1. Введение

В этом кратком руководстве мы сосредоточимся на различных типах BootstrapMode для репозиториев JPA, которые Spring предоставляет для изменения оркестровки их создания .

При запуске Spring Data сканирует репозитории и регистрирует их определения bean-компонентов как bean-компоненты с одноэлементной областью. Во время инициализации репозитории немедленно получают EntityManager . В частности, они получают метамодель JPA и проверяют объявленные запросы.

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

2. Различные варианты загрузки репозиториев

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

1. Обзор

В этом коротком руководстве мы обсудим автоморфные числа и узнаем пару способов их поиска вместе с программами на Java.

2. Что такое автоморфное число?

Автоморфное число — это число, квадрат которого имеет в конце те же цифры, что и само число.

Например, 25 — автоморфное число, потому что квадрат 25 — это 625, оканчивающийся на 25. Точно так же 76 — автоморфное число, потому что квадрат 76 — это 5776, который снова оканчивается на 76.

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

1. Обзор

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

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

В этом руководстве мы рассмотрим, как красиво печатать XML в Java.

2. Введение в проблему

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

1. Обзор

Docker — это контейнерная платформа, которая упаковывает приложение вместе со всеми его зависимостями. В идеале для запуска этих приложений требуется определенная среда. В Linux мы используем переменные среды для выполнения этого требования. Эти переменные определяют поведение приложения.

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

Прежде чем мы двинемся дальше, давайте сначала поймем необходимость переменных среды.

2. Понимание переменных среды в Linux

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

1. Введение

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

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

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

2. Настройка Мавена