- Микросервисы со всей бизнес-логикой. Микросервис для работников, для комментариев и для задач.
- Сама бизнес-логика включает в себя MessageListener'a для получения сообщений из брокера посредством RabbitMQ, обработку запросов и сервисов, которые уже с помощью репозитория выполняют соответствующий запрос. Бизнес логика работает с самими сущностями, но в DAL и PL используются Dto.
- На уровне представления находятся вся логика, с которой уже может взаимодействовать пользователь: контроллеры, в которых с помощью Spring Security происходит аутентификация и авторизация, обработка HTTP запроса и отправка сообщения в брокер.
- В Data Access Layer происходит обращения к данным, которые хранятся в БД.
- В RabbitMQ передаются не JPA сущности, а Dto, для преобразования которых есть кастомные мапперы, которые находятся в модуле вместе с сущностями.
- Для более удобной работы с Базой Данных используются миграции Flyway.
- Для всех созданных классов сделан интерфейс Swagger.
Идея приложения: сервис для сотрудников компании N, в котором администратор может добавлять и делать другие дейтсвия с пользователями. Сами же пользователи привязаны к определенным сотрудникам, что дает возможность добавлять новые задачи и комментарии, а также иметь возможность просмотреть, удалить или отредактировать задачи, комментарии.
- Spring: Boot, MVC, Data, Security
- MySQL
- Hibernate
- Flyway
- RabbitMQ
- Gradle
- Swagger
- Lombok