An open API service indexing awesome lists of open source software.

https://github.com/kozjulia/aop

AOP
https://github.com/kozjulia/aop

hibernate java liquibase maven postgresql spring-aop spring-boot spring-openapi

Last synced: 3 months ago
JSON representation

AOP

Awesome Lists containing this project

README

        

## Реализация системы учета времени выполнения методов

#### Описание:
#### Разработана система учета времени выполнения методов в приложении с использованием Spring AOP.
#### Система способна синхронно и асинхронно логировать и анализировать данные о времени выполнения методов.

##### Приложение состоит из 2 сервисов:
- ##### aop-сервис
документация доступна по ссылке: http://localhost:8081/swagger-ui/index.html

OAS доступна по адресу: http://localhost:8081/v3/api-docs
- ##### aop-статистика
документация доступна по ссылке: http://localhost:8082/swagger-ui/index.html

OAS доступна по адресу: http://localhost:8082/v3/api-docs

-------

Перед запуском сервисов создайте в PostgreSQL бд со следующими параметрами:
```yaml
url: jdbc:postgresql://localhost:5432/aop
username: test
password: test
```
Для запуска приложения откройте проект в IDE и запустите 2 сервиса:
- aop-service;
- aop-statistic.

В папке postman находится коллекция тестов для обоих сервисов:
- Для aop-сервиса для всех API написаны автоматизированные скрипты + тесты;
- Для aop-статистики для всех API написаны запросы, запрашивающие статистику.

_______

Приложение **умеет** делать следующее:
1. Получение, создание, изменение, удаление элемента;
2. Асинхронное и синхронное отслеживание времени выполнения методов сервиса AOP, помеченных соответствующими
аннотациями @TrackTime и @TrackAsyncTime, сохранение данных о времени выполнения методов в базе данных;
##### **ВАЖНО** в application.yaml можно включать и отключать отслеживание
3. Получение статистики по ид, по разным входным параметрам, подсчет суммы и среднего арифметического времени
выполнения методов по разным входным параметрам в сервисе статистики.

-------

Приложение написано на **Java 17**, использует **Spring Boot 3**, **Spring AOP**, **Maven**, **Hibernate**, **Liquibase**, **Swagger**,
API соответствует **REST**, данные хранятся в БД **PostgreSQL**.

-------