mirror of
https://github.com/OtusTeam/Spring.git
synced 2026-05-30 10:50:42 +00:00
2.2 KiB
2.2 KiB
Пример работы с SpringMail через SpringIntegration
В примере демонстрируется:
- использование
@Scheduledтаймера для имитации пользовтельской активности - обработка доменных сущностей средствами SpringIntegration (
@MessagingGateway,IntegrationFlow) с использованиемrouteиsubFlowMapping - создание и отправка email сообщений средствами SpringMail
- аггрегация данных с помощью SpringData/JPQL
- создание кастомного endpoint-а actuator-а для вывода статистики
Описание примера:
- по таймеру
UserActivityEmitterServiceдостает из БД случайный тип активности и пользователя - после чего формирует из них объект активности (
UserActivity) и отправляет в поток обработки с помощьюUserActivityGateway - активности, у которых в названии типа есть вхождение "Вредн" помечаются, как важные соответствующим заголовком отправляемого сообщения
- в потоке обработки (
appUserActivityFlow) объект активности сохраняется в БД, а важные сообщения преобразуются в письма и отправляются на почту администратору - по таймеру
ActivityStatCalculationEmitterSerivceинициирует подсчет статистики с помощью отправки сообщения вactivityStatFlowчерезActivityStatGateway - в данном потоке происходит удаление старых статистических данных, а так же подсчет и сохранение в БД новых
- за вывод статистических данных отвечает кастомный endpoint actuator-а
ActivityStatEndpoint