Spring Restdocs and Spring Cloud Contract with Cucumber and Spring Webflux

In this post, I will describe Spring Restdocs and Spring Cloud Contract integration into Cucumber tests with Spring Webflux. 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. This post is a webflux adaptation of the previous post.

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

Разработка приложений со 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