gpt4 book ai didi

java - 定期刷新 Spring bean 实例属性的最佳实践?

转载 作者:行者123 更新时间:2023-11-29 04:34:47 25 4
gpt4 key购买 nike

我有一个 spring 组件调用 AWS 来做一些事情。它获取持续 <=1 小时的临时 session 凭证,以在我的应用程序启动时初始化 AWS 服务客户端。 AWS 服务客户端设置为 bean 的实例属性。然后在这个小时后,我需要阻塞所有使用这个 bean 的线程并刷新服务客户端使用的临时 session 凭证。

有什么推荐的方法吗?感谢任何提示/线索

最佳答案

我认为最好(也是最容易)将其作为一种代理来实现。

首先,为将要刷新的对象创建一个类。让我们称之为RefreshableProperty .

然后你需要代理,它有以下职责:

  • 它将被注入(inject)任何需要访问 RefreshableProperty 的地方
  • 它将有一个类型为AtomicReference<RefreshableProperty>的字段实例
  • 它可以有一个用@Scheduled注释的方法(带有一些 cron 表达式)将被定期调用
  • 此方法将连接到您的配置服务器并下载新设置,这些设置将被放入 RefreshableProperty 的新实例中
  • 在此类操作结束时,您的代码应交换引用,使其指向新对象

如果您需要准确地每小时完成一次,那么这将是一项艰巨的任务,我强烈建议您不要这样做,因为将此服务客户端与您的 Spring 应用程序同步会非常棘手。

关于java - 定期刷新 Spring bean 实例属性的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42119144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com