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
- Host: GitHub
- URL: https://github.com/kozjulia/aop
- Owner: kozjulia
- Created: 2024-04-07T14:10:08.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-06-04T19:01:38.000Z (about 1 year ago)
- Last Synced: 2025-01-11T09:16:46.176Z (5 months ago)
- Topics: hibernate, java, liquibase, maven, postgresql, spring-aop, spring-boot, spring-openapi
- Language: Java
- Homepage:
- Size: 35.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Реализация системы учета времени выполнения методов
#### Описание:
#### Разработана система учета времени выполнения методов в приложении с использованием Spring AOP.
#### Система способна синхронно и асинхронно логировать и анализировать данные о времени выполнения методов.##### Приложение состоит из 2 сервисов:
- ##### aop-сервис
документация доступна по ссылке: http://localhost:8081/swagger-ui/index.htmlOAS доступна по адресу: http://localhost:8081/v3/api-docs
- ##### aop-статистика
документация доступна по ссылке: http://localhost:8082/swagger-ui/index.htmlOAS доступна по адресу: 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**.-------