Начало разработки веб-приложений с Java и Spring

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

Читать далее Начало разработки веб-приложений с Java и Spring

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

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

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

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

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

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

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

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

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

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

Развитие блога

Друзья!

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

Список тем:

  • Java
  • Kotlin
  • Spring (практически вся экосистема, включая Cloud)
  • Project Reactor
  • Java EE и Jakarta EE
  • Vaadin
  • Hibernate
  • Netty
  • VueJS и Vuetify
  • AngularJS и Angular
  • Apache Camel, Apache CXF, Apache ActiveMQ и Artemis
  • Thymeleaf

Ваши мысли вы можете оставлять в комментариях и в социальных сетях.

Spring Restdocs and Spring Cloud Contract with Cucumber

In this post, I will describe Spring Restdocs and Spring Cloud Contract integration into Cucumber tests. The main problem is that we can’t use the most of common JUnit and Spring Test annotations like @Before, @After and @Rule in Cucumber tests, so we have to set up testing environment manually.

Читать далее Spring Restdocs and Spring Cloud Contract with Cucumber

Стрим: простое веб-приложение на Spring Boot

Запись стрима, в котором я показал на примере простой адресной книги процесс разработки веб-приложения с использованием Spring Boot, Spring Data JPA, Spring Data REST и Angular Material.

Создание Maven-проекта из архетипа в NetBeans

Что бы создать проект из maven-архетипа в NetBeans нужно открыть диалог создания нового проекта и в категории «Maven» выбрать «Project from Archetype»:

Читать далее Создание Maven-проекта из архетипа в NetBeans

NetBeans и покрытие кода тестами

В NetBeans интегрирован плагин, позволяющий просмотреть покрытие кода тестами. Что бы пункт «Code coverage/Охват кода» меню проекта стал доступен, необходимо только добавить в зависимости jacoco-maven-plugin:

Читать далее NetBeans и покрытие кода тестами

Letsencrypt Certbot и DialogError

На днях решил настроить для одного из доменов HTTPS, запустил Certbot от Letsencrypt, ввёл нужный домен и… получил ошибку:

Гугление ошибки конкретных ответов не дало, но нашёл в одном из обсуждений указание, что для диалогового окна, открывающегося в терминале, нужно минимум 80 строк. Проблема как раз была в том, что я выполнял свои действия в тильде, где в обычном режиме этих 80 строк нет. После открытия терминала на полный экран всё замечательно сработало. Впрочем, если указывать в аргументах certbot-auto путь, куда нуда нужно складывать временные файлы, то эта ошибка не возникает.