我正在寻找一种在使用Spring的PropertySource
注释时刷新自定义@Value
的方法。我们在bean中包含所有属性的属性,每个属性都注释为@Value
。我们的实现有自己的本地缓存,每个属性都有一个TTL。
配置是在外部管理的(通过Consul),因此当TTL到期时,新值将生效,这将是很好的。了解我可以使用Spring Cloud的@RefreshScope
并调用Spring Actuator端点来执行此操作,我宁愿绕过@Value
和PropertySource
本身前面的任何逻辑,只需调用直接getProperty()
的{{1}}方法。
由于所有属性在启动时都会加载具有此批注的内容,因此延迟执行加载也是一件好事。只有在调用时获取属性,然后我们的属性管理器才会看到TTL何时到期,并在新值不可用时重新缓存旧值。