## Пример работы с SpringMail через SpringIntegration

В примере демонстрируется:
* *использование `@Scheduled` таймера для имитации пользовтельской активности*   
* *обработка доменных сущностей средствами SpringIntegration (`@MessagingGateway`, `IntegrationFlow`) с использованием `route` и `subFlowMapping`*   
* *создание и отправка email сообщений средствами SpringMail*
* *аггрегация данных с помощью SpringData/JPQL*
* *создание кастомного endpoint-а actuator-а для вывода статистики*

Описание примера:
* *по таймеру `UserActivityEmitterService` достает из БД случайный тип активности и пользователя*   
* *после чего формирует из них объект активности (`UserActivity`) и отправляет в поток обработки с помощью `UserActivityGateway`*
* *активности, у которых в названии типа есть вхождение "Вредн" помечаются, как важные соответствующим заголовком отправляемого сообщения*
* *в потоке обработки (`appUserActivityFlow`) объект активности сохраняется в БД, а важные сообщения преобразуются в письма и отправляются на почту администратору*
* *по таймеру `ActivityStatCalculationEmitterSerivce` инициирует подсчет статистики с помощью отправки сообщения в `activityStatFlow` через `ActivityStatGateway`*
* *в данном потоке происходит удаление старых статистических данных, а так же подсчет и сохранение в БД новых*
* *за вывод статистических данных отвечает кастомный endpoint actuator-а `ActivityStatEndpoint`*
