Тэги: json, Spring Boot, YouTube, gradle, rest, руководство, Kotlin.
В предыдущей статье Spring Data JPA, REST и Kotlin: создание, обновление, удаление мы научились изменять данные в базе с помощью Spring Data JPA. При обновлении и удалении мы сначала проверяем, что запись существует. И если она не найдена – кидаем стандартное исключение. Обеспечивается это поведение через элвис-оператор:
Тэги: Spring Boot, PostgreSQL, Spring Data, Hibernate, yaml, YouTube, SQL, Kotlin, gradle, rest, руководство.
В предыдущей статье Spring Data JPA, REST и Kotlin: заготовка проекта мы сделали заготовку проекта и научились отдавать статический список стран. А сейчас разберёмся с подключением к базе.
Теперь пришла пора подключиться к базе данных и научиться считывать данные из неё. Сначала создадим таблицу country и наполним её данными:
Тэги: Spring Boot, Kotlin, gradle, YouTube, rest, руководство, PostgreSQL, Spring Data.
Это первая статья из цикла о создании restful-сервиса на Kotlin, который будет взаимодействовать с СУБД Postgres с помощью Spring Data JPA.
В качестве предметной области выберем города и страны. В одной стране может быть несколько городов. И эту взаимосвязь мы чуть позже отразим в самой базе данных.
Данный материал также доступен на Youtube. Пример проекта вы можете посмотреть на Github.
Тэги: Spring, Spring Boot, Kotlin, gradle, YouTube.
В этой статье вы узнаете, как отправлять email в Spring Boot. Также можно посмотреть исходники этого примера на github и видео на YouTube.
Для начала создадим новый gradle-проект. Проще всего это сделать с помощью Spring Initializr. Там выбираем параметры Java 17, язык – Kotlin, сборщик Gradle – Kotlin. В зависимости добавим Spring Web и Java Mail Sender. В итоге в проекте должно быть прописано:
Стартер spring-boot-starter-mail добавляет саму функциональность работы с email.
Тэги: 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, 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.
Тэги: Kotlin, gradle, maven, файлы, Java.
Помимо конфигурационных файлов в приложении бывает удобно хранить и некоторые другие файлы ресурсов. Например, тексты или изображения. Достаточно положить эти файлы в папку resources вашего проекта и в процессе выполнения вы сможете получить к ним доступ.
Например, нам нужно прочитать файл test.txt. Положим его в папку resources вашего проекта (она есть и в maven, и в gradle). Важно положить именно в ту resources, которая относится к самому приложению, а не к тестам, иначе вы не сможете обратиться к файлу.
Доступ к ресурсам мы получаем через метод getResource(), который имеется у объекта Class. Но доступ к классу из статичного контекста метода main() получить нельзя, поэтому мы сначала создаём экземпляр класса, а затем внутри него уже обращаемся к ресурсу. Обратите внимание, что имя ресурса начинается со слеша. Путь до ресурса указывается от корня папки resources. Для чтения содержимого файла целиком в строку используем метод Files.readString(), появившийся в Java 11. Если у вас более ранняя версия Java, то данный метод будет недоступен. В случае, если файл будет очень большим, также лучше данный метод не использовать, а читать файл с помощью буферизованного потока.
Kotlin, Java, Spring, Spring Boot, Spring Data, SQL, PostgreSQL, Oracle, H2, Linux, Hibernate, Collections, Stream API, многопоточность, чат-боты, нейросети, файлы, devops, Docker, Nginx, Apache, maven, gradle, JUnit, YouTube, новости, руководство, ООП, алгоритмы, головоломки, rest, GraphQL, Excel, XML, json, yaml.