问题背景
- 语言:Kotlin
- 框架:Spring Boot
在A画面中,需要调取本地时间
DateTimeUtils.now()
来调用API进行时间相关业务的处理。
问题代码
在该画面的静态资源区,有这样一段代码:
static component{
val LocalTime = DateTimeUtils.now()
}
之后在业务代码中,当需要使用当前时间时,就会调用这个LocalTime常量来进行处理。
问题发生
当用户于9月初登录该系统时,用户发现,时间相关的业务块的显示信息是停留八月底的,九月份的数据并没有刷新出来。即使是清掉了浏览器Cookie仍旧如此。
问题分析
由于【获取用户当前时间】这一处理被放在了静态(static)区中,因此当该项目上线当服务器后,首次起项目的时候,这个用来标识当前时间的【LocalTime】就被赋值上了起项目那个时间点的时间,而不是业务要求的【用户当前时间】。
以上是我浅显的分析,如有大佬读到,还请指出纰漏之处,感谢!