W tej części stworzymy kontroler, serwis i repozytorium dla klasy Category.

Dotychczas stworzyliśmy klasę Controller i wstrzyknęliśmy zależność w postaci interfejsu BookRepository.

W dzisiejszym wpisie pokażę podejście z wykorzystaniem klasy pełniącej role serwisu. Połączenie pomiędzy modułem kontrolera, a repozytorium zostanie odizolowane przez klasę serwisową, dostarczającą metody dla kontrolera.

W pierwszej kolejności tworzę paczkę ‚services’ w głównym folderze aplikacji:

Następnie wewnątrz paczki tworzę klasę ‚CategoryService’. Będzie to klasa obsługująca model Category, czyli klasę reprezentującą rekord w tabeli ‚categories’ w mojej bazie danych.

W paczce ‚repository’ tworzę interfejs ‚CategoryRepository’:

Ostatnia klasa, którą muszę stworzyć, to CategoryController w paczce controller.


Teraz przejdźmy do ‚CategoryService’. Mamy tutaj konstruktor oraz pierwszą metodę zwracającą listę kategorii.

Istotna jest tutaj adnotacja „@Service„, ponieważ bez niej Spring nie wstrzyknie nam zależności i nie utworzy Beanu z tej klasy.

Klasa ‚CategoryController’ zawiera już odpowiednie adnotacje i mapowanie po GET z metodą zwracającą listę kategorii. Odmiennie do ‚BookController’, tutaj mamy zależność w postaci klasy ‚CategoryService’.

Urachamiam Postman i sprawdzam, czy działa endpoint ‚../categories’ :

Aktualna wersja aplikacji dostępna jest tutaj