Введение в Optional

В JDK 8 был введён новый утилитарный класс java.util.Optional, целями которого являются повышение null-safety и читаемости кода при работе со ссылками, значения которых могут быть null. Главная же цель Optional — замена null-значений, благодаря чему должна повышаться безопасность и читаемость кода.

Optional тесно связан с другими нововведениями JDK 8: Stream и лямбда-выражениями.

Читать далее Введение в Optional

Лямбда-выражения в Java

Поддержка лямбда-выражений, реализованная в Java 8, стала одним из наиболее значимых нововведений за последнее время. Будучи упрощённой записью анонимных классов, лямбды позволяют писать более лаконичный код при работе со Stream или Optional. Лямбда-выражения часто используются как совместно со многими API стандартной библиотеки Java, так и со сторонними API, среди которых JavaFX, реактивные стримы и т.д.

Читать далее Лямбда-выражения в Java

REST API с использованием Spring

Spring Framework WebMVC позволяет разрабатывать не только классические веб-приложения, но и реализовывать REST API. В этой статье я опишу процесс разработки REST API простого проекта на Java с использованием Spring Boot и Spring Framework.

Читать далее REST API с использованием Spring

Java и MongoDB: работа с кодеками

В предыдущей публикации я описал базовые операции при работе с MongoDB в Java.
Использовать org.bson.Document для работы с данными, хранящимися в коллекциях далеко не всегда удобно. Как правило, в коллекциях хранятся данные имеющие какую-то определённую структуру, соответствующую, например, POJO-классам вашего проекта.

Для реализации преобразования BSON в объекты соответствующих классов и обратно в драйвере MongoDB предусмотрены кодеки, реализующие интерфейс org.bson.codecs.Codec. В этой публикации я рассмотрю варианты разработки собственного кодека и использования готовых.

Читать далее Java и MongoDB: работа с кодеками

Java и MongoDB: базовые операции

MongoDB — одна из наиболее популярных документноориентированных систем управления баз данных с открытым исходным кодом.

Для использования MongoDB в Java-проектах потребуется синхронный или асинхронный драйвер. В этой статье я опишу работу с синхронным драйвером.

Читать далее Java и MongoDB: базовые операции

Ускоряем Spring Boot: Автоконфигурации

Автоконфигурации в Spring Boot содержат большое количество заранее сконфигурированных компонентов, которые вы можете использовать либо без дополнительного конфигурирования, либо с указанием минимальных настроек вроде информации об адресах используемых сервисов, именах пользователей и паролях.

Читать далее Ускоряем Spring Boot: Автоконфигурации

Spring Framework: Functional Bean Registration

Functional bean registration is a feature that was added to Spring Framework 5. This feature allows to create and register beans in the application context without use of reflection API and also can boost up application startup time.

Читать далее Spring Framework: Functional Bean Registration

Spring Framework: Функциональная регистрация компонентов

В Spring Framework 5 была добавлена возможность функциональной регистрации компонентов (бинов) в контексте приложения.

Читать далее Spring Framework: Функциональная регистрация компонентов

XML-конфигурация Bean Validation

Компоненты Bean Validation могут быть сконфигурированы при помощи XML-файлов. Такой подход может быть удобен, когда требуется добавить валидацию классов, недоступных для изменения, либо в тех случаях, когда хочется избежать появления сторонних зависимостей в коде. Основной XML-файл конфигурации — META-INF/validation.xml, в нём находятся основные настройки Bean Validation.

Читать далее XML-конфигурация Bean Validation

Валидация данных при помощи Bean Validation API

Для валидации данных в Java EE существует Bean Validation. Первая версия данного набора API была специфицирована в JSR-303 и опубликована как часть Java EE 6. Текущая версия — 2.0, является частью Java EE 8 и описана в JSR-380. Эталонной реализацией Bean Validation является Hibernate Validator. Bean Validation может использоваться не только в классических приложениях на основе Java EE, но и в приложениях на основе Spring, и даже в приложениях, не имеющих отношения к Java EE.

Читать далее Валидация данных при помощи Bean Validation API