05 - Moments: eventos del paso del tiempo

Moments es una API de Spring Modulith que convierte el paso del tiempo en eventos de aplicación. Permite activar comportamientos asociados a intervalos temporales sin acoplarlos a una tarea periódica concreta.

Al incluir spring-modulith-moments, se pueden consumir eventos como HourHasPassed, DayHasPassed, WeekHasPassed, MonthHasPassed, QuarterHasPassed y YearHasPassed.

@Component
class MonthlyReportListener {
    @ApplicationModuleListener
    void on(MonthHasPassed event) {
        // Ejecutar trabajo asociado al cambio de mes.
    }
}

El bean Moments publica estos eventos usando un Clock basado en UTC por defecto. Se puede registrar un Clock propio en el contexto para controlar la fuente temporal.

Al activar spring.modulith.moments.enable-time-machine, la implementación expone TimeMachine. Esta permite avanzar el reloj y provocar los eventos intermedios, útil para pruebas de integración de lógica dependiente del tiempo.

Propiedad Valor predeterminado Función
spring.modulith.moments.enable-time-machine false Habilita TimeMachine
spring.modulith.moments.granularity horas Granularidad mínima; puede usarse días para omitir eventos horarios
spring.modulith.moments.locale Locale predeterminado Determina los límites de semana
spring.modulith.moments.quarter-start-month enero Mes inicial de los trimestres
spring.modulith.moments.zone-id UTC Zona horaria de las fechas publicadas
  • clase/spring/modulith/moments.txt
  • Última modificación: 2026/10/04 09:56
  • por cesguiro