【问题标题】:How to use @RefreshScope with @EnableBinding-annotated classes?如何将@RefreshScope 与@EnableBinding 注释的类一起使用?
【发布时间】:2023-03-10 19:15:01
【问题描述】:

@EnableBinding 将 class 变成 @Configuration,然后是 documented

@RefreshScope(技术上)在 @Configuration 类上工作,但它可能会导致令人惊讶的行为:例如这并不意味着该类中定义的所有@Bean 本身就是@RefreshScope。具体来说,任何依赖于这些 bean 的东西都不能依赖于它们在刷新启动时被更新,除非它本身在 @RefreshScope 中(其中它将在刷新时重建并重新注入其依赖项,此时它们将是从刷新的@Configuration 重新初始化)。

所以只是一个实际的问题:还有办法更新一些用@EnableBinding 注释的接收器类吗?我猜它不会被框架处理,应该用自定义的@EventListener来实现

【问题讨论】:

    标签: spring spring-cloud spring-cloud-stream


    【解决方案1】:

    对于我们最简单的示例,我们使用@Configuration 类,其中@EnableBinding 本身被声明为业务逻辑bean,这是因为@EnableBinding@Configuration,因此是@Component .例如,由于您不需要 Receiver bean 本身上的@EnableBinding,因此我会将逻辑分离到一个带有@RefreshScope 注释的bean 中。 @EnableBinding 本身不受刷新,尽管通道在开始/停止时会解除绑定/反弹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2020-01-06
      • 2013-11-06
      • 1970-01-01
      相关资源
      最近更新 更多