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

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

1. Обзор

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

В этом руководстве мы продемонстрируем три подхода к внедрению аудита в приложение. Во-первых, мы реализуем его с помощью стандартного JPA. Далее мы рассмотрим два расширения JPA, которые предоставляют свои собственные функции аудита, одно предоставляется Hibernate, другое — Spring Data.

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

./3e074f86df4e5666a86df76786131bb8.png

2. Аудит с помощью JPA

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

1. Введение

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

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

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

В рамках одного прогона миграции повторяемые миграции всегда применяются последними после выполнения ожидающих версий миграций. Повторяемые миграции применяются в порядке их описания. Для одной миграции все операторы выполняются в рамках одной транзакции базы данных.

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

1. Введение

Thymeleaf — это механизм шаблонов Java, способный напрямую работать с Spring. Чтобы познакомиться с Thymeleaf и Spring, ознакомьтесь с этой статьей .

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

В этом руководстве мы обсудим обработку и форматирование новых и старых классов Java Date с несколькими функциями Thymeleaf 3.0.

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

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

1. Обзор

В этой статье мы сделаем краткий обзор веб-сервера Jetty, а затем рассмотрим различные подходы к развертыванию файла WAR.

Jetty — это веб-сервер Java HTTP с открытым исходным кодом и контейнер сервлетов. Jetty чаще используется для межмашинного взаимодействия в экосистеме Java.

2. Настройка проекта

Последнюю версию Jetty всегда можно скачать по этой ссылке . Мы создадим очень простое веб-приложение Java из командной строки с помощью Maven, которое мы будем использовать в наших примерах.

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

1. Обзор

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

До Spring 3.2 двумя основными подходами к обработке исключений в приложении Spring MVC были HandlerExceptionResolver или аннотация @ExceptionHandler . У обоих есть явные недостатки.

Начиная с версии 3.2, у нас есть аннотация @ControllerAdvice для устранения ограничений предыдущих двух решений и продвижения единой обработки исключений во всем приложении.

Теперь в Spring 5 представлен класс ResponseStatusException — быстрый способ базовой обработки ошибок в наших REST API.

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

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

1. Введение

В этой статье мы рассмотрим, как получить данные о географическом местоположении с IP-адреса с помощью Java API MaxMind GeoIP2 с бесплатной базой данных GeoLite2.

Мы также увидим это в действии, используя простое демонстрационное веб-приложение Spring MVC.

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

Для начала вам необходимо загрузить GeoIP2 API и базу данных GeoLite2 с сайта MaxMind.

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

1. Обзор

В этом кратком руководстве мы покажем, как тестировать конечные точки GraphQL с помощью Postman.

2. Обзор схемы и методы

Мы будем использовать конечные точки, созданные в нашем руководстве по GraphQL . Напоминаем, что схема содержит определения, описывающие посты и авторов:

type Post {
id: ID!
title: String!
text: String!
category: String
author: Author!
}

type Author {
id: ID!
name: String!
thumbnail: String
posts: [Post]!
}

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

1. Введение

В этом кратком руководстве по Hibernate мы рассмотрим пример сопоставления « один ко многим » с использованием аннотаций JPA, альтернативы XML.

Мы также узнаем, что такое двунаправленные отношения, как они могут создавать несоответствия и как может помочь идея владения.

2. Описание

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

1. Введение

В этой статье мы представим HtmlUnit, инструмент, который позволяет нам, проще говоря, программно взаимодействовать с HTML-сайтом и тестировать его, используя JAVA API .

2. О HtmlUnit

HtmlUnit — это браузер без графического интерфейса пользователя, предназначенный для программного использования, а не непосредственно пользователем.

Браузер поддерживает JavaScript (через движок Mozilla Rhino ) и может использоваться даже для веб-сайтов со сложными функциями AJAX. Все это можно сделать, имитируя типичный браузер с графическим интерфейсом, такой как Chrome или Firefox.