Skip to content

About

Coursework (2023): Java Spring Boot REST service for a beetle collection with JPA and PostgreSQL.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bug Collection

Java Spring Boot PostgreSQL Maven

REST-сервис каталога коллекций жуков на Java и Spring Boot: пользователи, экземпляры, предложения обмена. Исходная версия сервиса, позже переписанная на Kotlin — см. beetle-management-service.

Стек: Java · Spring Boot · Spring Data JPA · Hibernate · PostgreSQL · Maven

Архитектура

Трёхслойное разделение с интерфейсами между слоями:

controller/    BeetleController — REST-эндпоинты
service/       BeetleService, UserService + реализации в Impl/
repository/    BeetleRepository, UserRepository — Spring Data JPA
model/         Beetle, User, ExchangeOffers — сущности
ResourceNotFoundException    отдельный тип для 404

src/main/resources/query.sql содержит исходные запросы, по которым проектировалась схема.

Поток запроса

flowchart LR
    HTTP["HTTP-запрос"]
    C["controller<br/>REST-граница"]
    S["service<br/>бизнес-логика"]
    R["repository<br/>Spring Data JPA"]
    DB[("PostgreSQL")]
    E["ResourceNotFoundException<br/>-> 404"]

    HTTP --> C
    C --> S
    S --> R
    R --> DB
    S -.-> E
    E -.-> C
Loading

Каждый слой обращается только к соседнему снизу и знает его как интерфейс, а не как реализацию — поэтому хранилище можно подменить, не трогая контроллеры.

Запуск

Нужны JDK 17+ и PostgreSQL с базой BugCollection.

./mvnw spring-boot:run

Параметры подключения — в src/main/resources/application.properties; подставьте свои учётные данные. Таблицы создаются автоматически (ddl-auto=update).

Kotlin-версия

Тот же сервис на Kotlin, Gradle и с метриками Prometheus: beetle-management-service. Репозитории удобно смотреть рядом — видно, что именно меняется при переносе Spring-приложения с Java/Maven на Kotlin/Gradle.

About

Coursework (2023): Java Spring Boot REST service for a beetle collection with JPA and PostgreSQL.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages