RestAPI + Java+spring. Часть 5 — реализация логики сервиса

Natalya Khrebtiivsky
3 min readMay 30, 2021

--

В первой статье мы разобрались что вообще будем делать.
Во второй части создали Spring Boot приложение и подключили к нему maven.
В третьей части мы подключили БД (H2) и создали класс для добавления объекта (Entity)
В четвертой части мы создали классы контроллера и сервиса (используя шаблон Adapter)

Теперь пришло время написать логику работы приложения.

Для этого нам необходимо добавить репозиторий и реализовать методы, которые мы добавили в класс ItemServiceImpl в предыдущей статье

  1. Repository — это интерфейс, который в нашем случае будет расширять JpaRepository интерфейс спринга. Дело в том, что в JPA уже есть основные методы, и мы можем легко из использовать при написании логики.

2. Добавляем ссылку на этот репозиторий в класс, в котором мы будем его использовать

и реализуем логику методов.

нам придется практически в каждом методе собирать из ДТО объект или наоборот, поэтому выносим эту функциональность в два отдельных метода.

получаем один объект из БД

следующий метод — получение количества продуктов по id продукта. Этот метод немного сложнее — тут нам придется использовать native query, что бы тянуть не весь объект. а только ту информацию, которая нам необходима.

в репозитории —

следующий метод — получение всех товаров из БД.

и последний метод — удаление объекта из БД

Теперь осталось обработать исключения. Например— что произойдет, если пользователь захочет получить товар, которого нет в БД.

Это — в следующей статье.

А пока — код описанный в этой статье можно найти по ссылке https://github.com/natalyaKh/items/tree/service+repo

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response