Тэги: SQL, Spring, Kotlin, PostgreSQL, Spring Boot, YouTube.
Давайте рассмотрим, как обеспечить пакетную вставку (batch insert) большого количества данных с помощью Spring JDBC API. Допустим, нам нужно вставить 100 000 строк в таблицу в postgres. В качестве драйвера для работы с БД используем стандартный org.postgresql:postgresql.
Мы рассмотрим несколько вариантов, начиная с самого простого и заканчивая самым быстрым, постепенно улучшая нашу реализацию. Если вам нужен финальный вариант, листайте сразу к последнему.
Данный материал доступен также в формате видео на YouTube.
Допустим у нас есть такая таблица для хранения истории каких-то заказов:
Тэги: SQL, PostgreSQL, Spring Boot, gradle, Kotlin, yaml.
Liquibase позволяет автоматизировать внесение обновлений в структуру БД. Каждое изменение описывается в декларативном стиле и версионируется. Обновления накатываются в заранее определённом порядке на данную БД, если они ещё не накатывались. Автоматизация процесса наката изменений на базу данных особенно важна, если у вас несколько различных экземпляров приложений и для каждого из них требуется поддерживать свою БД.
Данный материал также доступен в формате видео на YouTube.
Рассмотрим работу с Liquibase на конкретном примере. С помощью Spring Initializr создадим заготовку нашего Spring Boot приложения (выбираем в качестве языка kotlin, а в качестве сборщика – gradle). В dependencies выберем компоненты Spring Web (функциональность rest-контроллеров), Spring Data JDBC (работа с БД), PostgreSQL Driver (драйвер нашей СУБД) и сам Liquibase Migration. В итоге файл build.gradle.kts в секции dependencies должен содержать следующие зависимости:
Тэги: Spring Boot, rest, Kotlin, YouTube, Spring.
Spring «из коробки» предоставляет простой механизм работы с событиями, которые позволяют уменьшить связность компонентов системы. Событие, которое возникает в одной точке приложения, может быть перехвачено и обработано в любой другой части приложения благодаря таким сущностям как publisher и eventListener.
Для примера рассмотрим rest-приложение на Kotlin, в котором есть некий метод с бизнес-логикой. И мы хотим каждый вызов этого метода фиксировать. Чтобы не повышать связность кода и не делать явный вызов конкретного компонента, мы можем публиковать событие в нашей системе и любые компоненты, которые будут «прослушивать» тип такого события, смогут выполнить дополнительные действия.
Данный материал также доступен в формате видео на Youtube.
Тэги: Spring, Spring Boot, Kotlin, YouTube, новости, gradle.
На нашем youtube-канале вышло видео о том, как запускать задачи по расписанию в Spring Boot. В качестве примера рассмотрим gradle-проект на Kotlin.
Мы будем использовать аннотацию @Scheduled. Она имеет несколько параметров. Вначале рассмотрим, как запускать задачи с фиксированным интервалом с помощью fixedDelay в миллисекундах. Затем научимся выносить настройки запуска в конфиг с помощью fixedDelayString. Ну и наконец, если нам важно запускать задачи в конкретное время дня, то для этих целей будем использовать cron-выражение.
Тэги: Spring Boot, YouTube, gradle, Kotlin, новости, Spring, PostgreSQL, rest.
На нашем youtube-канале опубликована целая серия видео о том, как шаг за шагом создать restful-сервис на основе Spring Boot.
В качестве примера рассматриваем проект на Kotlin. Для взаимодействия с БД используем Spring JDBC API. В качестве базы данных выбрали postgres. Исходники проекта доступны на github.
Тэги: Spring, yaml, YouTube, Kotlin, Java, новости, Spring Boot.
Ранее я писал статью Сравнение форматов конфига в Spring Boot. В ней рассказывается про различные форматы конфига (обычный текстовый файл, xml и yaml) и то, как с ними работать в Spring Boot.
Сегодня я залил видео, в котором наглядно показываю различные форматы и то, как разделять настройки приложения в зависимости от профиля (test/prod). В статье код приводился на Java, а видео я решил снять на примере Kotlin.
Любые вопросы пишите в комментариях: либо здесь, либо прямо на YouTube. Также не забывайте подписываться на канал и ставить лайки, чтобы ролик смогло посмотреть как можно большее количество человек.
Тэги: Spring Boot, PostgreSQL, rest, Kotlin, gradle, YouTube, новости.
Ранее я уже снимал видео о том, как создавать с нуля проект на Spring и Kotlin с помощью сервиса Spring Initializr, который предоставляет интерфейс для генерации заготовки проекта с добавлением стандартных зависимостей.
Теперь пришла пора рассказать о том, как сделать то же самое, не покидая IntelliJ Idea Ultimate Edition. Так что если вы работаете именно в этой (платной) версии, то вам крупно повезло и создание проекта у вас займёт считаные секунды.
Видео как обычно, уже доступно на YouTube.
Кстати, не забывайте подписываться на канал!
Тэги: YouTube, Kotlin, новости, gradle, Spring, Spring Boot.
Чтобы каждый раз не создавать с нуля Spring проект на Kotlin и не искать последние версии зависимостей, можно воспользоваться сервисом Spring Initializr, который предоставляет интерфейс для генерации заготовки проекта с добавлением стандартных зависимостей. Их можно конфигурировать в зависимости от ваших потребностей. В качестве сборщика проекта выберем Gradle, и Spring Initializr автоматически сгенерирует скрипт сборки на Kotlin DSL. Затем мы скачаем эту заготовку и запустим её в IntelliJ Idea от JetBrains.
Поскольку данный процесс лучше показывать визуально, я снял подробное видео и выложил его на YouTube.
Кстати, подписывайтесь на канал и ставьте лайки, т.к. это по сути первое моё видео.
Тэги: алгоритмы, Kotlin, Java.
Среди других алгоритмов сортировки «пузырьковая» является самой медленной. Однако при этом алгоритм достаточно прост для понимания. На практике вместо него используют другие алгоритмы сортировки. Про пузырьковую сортировку любят рассказывать при обучении программированию и любят спрашивать на собеседованиях.
Суть алгоритма заключается в том, что мы последовательно проходимся по массиву элементов, сравнивая текущий и предыдущий между собой. Если предыдущий больше текущего, то меняем их местами. Таким образом, элемент с наибольшим значением как бы «всплывает» в конец массива. Отсюда и название «пузырьковая сортировка».
Как известно, формат xml нечувствителен к отступам и пробелам между тэгами. Поэтому с целью уменьшения объема данных и без того многословный xml можно записать в одну строку. Тогда вы получите заметное уменьшение объёма, но при этом такой формат будет сложно просматривать.
Чтобы сделать его удобочитаемым, мы можем написать специальный метод, который будет считывать исходный xml, форматировать его по определённым правилам и возвращать новый xml в виде строки. Форматирование будем производить без сторонних библиотек стандартными средствами JDK.
Рассмотрим следующий пример на kotlin:
Kotlin, Java, Spring, Spring Boot, Spring Data, SQL, PostgreSQL, Oracle, Linux, Hibernate, Collections, Stream API, многопоточность, файлы, Nginx, Apache, maven, gradle, JUnit, YouTube, новости, руководство, ООП, алгоритмы, головоломки, rest, GraphQL, Excel, XML, json, yaml.