Интеграционное тестирование REST API с Cucumber, Spring Restdocs и Spring Cloud Contract

Модульные и интеграционные тесты серьёзно упрощают жизнь простого разработчика, позволяя выявить большую часть ошибок и проблем ещё на ранних стадиях разработки. Отдельного упоминания заслуживают фреймворки Spring Restdocs и Spring Cloud Contract, использование которых в интеграционных тестах позволяет сгенерировать сниппеты, заглушки и контракты тестируемых REST API.

Читать далее Интеграционное тестирование REST API с Cucumber, Spring Restdocs и Spring Cloud Contract

Движок шаблонов Thymeleaf

В предыдущей статье я упомянул движок Thymeleaf, используемый в проекте для построения HTML-страниц. Я решил написать отдельный пост, посвящённый только Thymeleaf, а не углубляться в описание данной библиотеки в рамках той статьи, так как она получилась и без того достаточно большой.

Читать далее Движок шаблонов Thymeleaf

Разработка приложений со Spring. Базовое веб-приложение.

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

Читать далее Разработка приложений со Spring. Базовое веб-приложение.

Spring Data JPA: Волшебные методы

В предыдущем посте я вкратце рассказал о Spring Data JPA и затронул тему «волшебных» методов, приведя простой пример их использования. Однако возможности волшебных методов значительны, благодаря чему ими можно заменить именованные запросы в большинстве случаев.

Читать далее Spring Data JPA: Волшебные методы

Spring Framework и работа с базами данных: Spring Data JPA

В предыдущих постах о работе с базами данных в Spring Framework я поверхностно описал использование JdbcTemplate и NamedParameterJdbcTemplate. Пользоваться данными инструментами безусловно удобно, но у них есть определённые ограничения, среди которых:

  • Зависимость SQL-запросов от конкретной СУБД
  • Необходимость в самостоятельной реализации преобразования данных из БД в экземпляры классов-сущностей
  • Увеличение и усложнение кода при появлении новых таблиц и столбцов в таблицах

В стеке Spring существует проект Spring Data, реализующий большую часть тривиальных задач и упрощающий работу с источниками данных. В качестве источников данных могут использоваться как стандартные реляционные базы данных, так и NoSQL-хранилища вроде MongoDB или Redis.

Читать далее Spring Framework и работа с базами данных: Spring Data JPA

Коротко о PathVariable

Один из распространённых способов передачи параметров запроса — в виде частей адреса запроса. Например, у нас есть страница с контактными данными человека, её адрес выглядит следующим образом:

http://example.com/person/contacts?personId=42

Но, если передать идентификатор человека не параметром personId, а частью адреса запроса, то получится что-то вроде

http://example.com/person/42/contacts

Что выглядит намного понятнее и удобнее.

Для работы с параметрами, передаваемыми через адрес запроса в Spring WebMVC используется аннотация @PathVariable. Читать далее Коротко о PathVariable

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

Продолжаю разработку простого веб-приложения со Spring Boot, показываю реализацию поиска и рассказываю немного о волшебных методах в Spring Data JPA.

Пример веб-приложения на Spring Boot

Отвечая на вопрос «Как отобразить данные из БД» на Тостере, написал небольшое веб-приложение, использующее Spring Framework, Boot и Data и JSP/JSTL в качестве способа отображения страниц. Задача — написать простую книгу отзывов, которая может вывести список отзывов и добавить новый.

Читать далее Пример веб-приложения на Spring Boot

Начало разработки с Vaadin

О фреймворке Vaadin я знаю уже давно и даже начинал его изучать, но отсутствие возможности использовать его на практике не давало возможности серьёзно углубиться в это направление. Но в последнее время рекламные материалы Vaadin встречаются в сети буквально везде: в твиттере, в ютюбе и даже в рекламном баннере у меня в блоге. Так что я решил в свободное время попробовать поработать с этим фреймворком. Читать далее Начало разработки с Vaadin

Spring Framework и работа с базами данных: NamedParameterJdbcTemplate

В своём предыдущем посте я описал работу с JdbcTemplate на примере простого DAO-класса. Возможностей JdbcTemplate вполне хватает, что бы сделать работу с базами данными немного проще. Но использование вопросительного знака в качестве плейсхолдера для параметра запроса не всегда удобно, особенно, когда речь идёт о работе с таблицами, имеющими большое количество колонок. В этом случае удобнее будет использовать класс NamedParameterJdbcTemplate, который позволяет использовать именованные параметры в SQL-запросах. Читать далее Spring Framework и работа с базами данных: NamedParameterJdbcTemplate