Moments - 时间事件 API
spring-modulith-moments
是一个时间流逝事件实现,它深受 Matthias Verraes 的 博客文章 的启发。它是一种基于事件的时间方法,用于触发与特定时间段过去相关的操作。
要使用此抽象,请在您的项目中包含以下依赖项
-
Maven
-
Gradle
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-moments</artifactId>
</dependency>
dependencies {
implementation 'org.springframework.modulith:spring-modulith-moments'
}
添加到项目类路径中的依赖项将在您的应用程序中导致以下情况
-
应用程序代码可以引用 Spring 事件监听器中的
HourHasPassed
、DayHasPassed
、WeekHasPassed
、MonthHasPassed
、QuarterHasPassed
、YearHasPassed
类型,以在经过一定时间后收到通知。 -
类型为
org.springframework.modulith.Moments
的 bean 可在包含触发这些事件逻辑的ApplicationContext
中使用。 -
如果将
spring.modulith.moments.enable-time-machine
设置为true
,则该实例将成为org.springframework.modulith.TimeMachine
,它允许“推移”时间,并由此触发所有中间事件,这对于集成测试由事件触发的功能很有用。
默认情况下,Moments 使用 Clock.systemUTC()
实例。要自定义它,请声明类型为 Clock
的 bean。
-
Java
-
Kotlin
@Configuration
class MyConfiguration {
@Bean
Clock myCustomClock() {
// Create a custom Clock here
}
}
@Configuration
class MyConfiguration {
@Bean
fun myCustomClock(): Clock {
// Create a custom Clock here
}
}
Moments 公开以下应用程序属性以进行高级自定义
属性 | 默认值 | 描述 |
---|---|---|
|
false |
如果设置为 |
|
hours |
要触发的事件的最小粒度。替代值 |
|
|
用于确定星期边界时的 |
|
|
季度开始的月份。 |
|
|
用于确定与发布的事件关联的时间的 |