Тэги: 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.
Тэги: файлы, Spring Boot, руководство, Kotlin, rest, gradle.
При разработке приложения, ориентированного на мировой рынок, сразу следует закладывать поддержку нескольких языков. Добавление новой локализации должно выполняться быстро и при этом не требовать значительного рефакторинга. К счастью, если вы разрабатываете приложение на Spring Boot, то реализовать такую поддержку довольно просто.
Тэги: 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.
Тэги: Spring Boot, gradle, Kotlin, YouTube.
Swagger – это библиотека, которая при подключении к вашему проекту раз и навсегда решает вопрос актуальности технической документации. Swagger автоматически сканирует все эндпоинты вашего проекта, доступные снаружи, и отображает подробную информацию о них в веб-интерфейсе. Как только вы меняете существующие эндпоинты или добавляете новые – swagger тут же начинает отображать эти изменения. Кроме справочной информации, swagger также позволяет отправлять запросы в тестовых целях прямо через веб-интерфейс.
Внимание! Для последних версий Spring Boot данная статья уже не актуальна. См. статью Springdoc для документации REST API.
Помимо данной статьи вы можете также посмотреть видеогайд на эту тему.
Если ваше приложение основано на Spring Boot, для подключения swagger достаточно добавить всего лишь одну зависимость (пример для gradle):
Тэги: 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, Linux, Hibernate, Collections, Stream API, многопоточность, файлы, Nginx, Apache, maven, gradle, JUnit, YouTube, новости, руководство, ООП, алгоритмы, головоломки, rest, GraphQL, Excel, XML, json, yaml.