Files
Spring/examples/spring-mail-integration-demo
Александр Оруджев 60a32cdc1b examples updated
2021-04-27 20:01:00 +04:00
..
2020-10-23 18:48:52 +04:00
2021-04-27 20:01:00 +04:00

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

В примере демонстрируется:

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

Описание примера:

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