我有一个Spring组件,它调用AWS来做一些事情。它获取持续时间<= 1h的临时会话凭证,以便在我的应用程序启动时初始化AWS服务客户端。 AWS服务客户端设置为bean的实例属性。然后在这个小时之后,我需要使用这个bean阻塞所有线程并刷新服务客户端使用的临时会话凭证。
有没有推荐的方法呢?任何提示/线索都表示赞赏
答案 0 :(得分:3)
我认为将它作为一种代理实现它是最好的(也是最简单的)。
首先,为要刷新的对象创建一个类。让我们称之为RefreshableProperty
。
然后您需要具有以下职责的代理:
RefreshableProperty
AtomicReference<RefreshableProperty>
@Scheduled
注释的方法(带有一些cron表达式),可以定期调用RefreshableProperty
的新实例如果你需要每小时完成一次,那么这将是一项艰巨的任务,我强烈建议不要这样做,因为将此服务客户端与Spring应用程序同步会非常棘手。