记录一次有关静态变量的编程错误

问题背景

  • 语言:Kotlin
  • 框架:Spring Boot

在A画面中,需要调取本地时间

DateTimeUtils.now()

来调用API进行时间相关业务的处理。

问题代码

在该画面的静态资源区,有这样一段代码:

static component{
    val LocalTime = DateTimeUtils.now()
}

之后在业务代码中,当需要使用当前时间时,就会调用这个LocalTime常量来进行处理。

问题发生

当用户于9月初登录该系统时,用户发现,时间相关的业务块的显示信息是停留八月底的,九月份的数据并没有刷新出来。即使是清掉了浏览器Cookie仍旧如此。

问题分析

由于【获取用户当前时间】这一处理被放在了静态(static)区中,因此当该项目上线当服务器后,首次起项目的时候,这个用来标识当前时间的【LocalTime】就被赋值上了起项目那个时间点的时间,而不是业务要求的【用户当前时间】。

以上是我浅显的分析,如有大佬读到,还请指出纰漏之处,感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值